Laravel 4 hasMany avec la clause where
Ne sais pas si c'est la bonne façon d'ajouter une requête supplémentaire pour le hasMany argument, mais en vain. Est-ce possible?
public function menuItems($parent=false){
if($parent){
$menuItems = $this->hasMany('MenuItem')->where('parent',$parent);
}else{
$menuItems = $this->hasMany('MenuItem');
}
return $menuItems;
}
Lorsqu'il est appelé à l'aide
$menu_items = $menu->menuItems(0);
Cela semble juste pour retourner un tableau vide lorsqu'il est passé d'un parent. Même si les données avec MenuItem->parent = 0 existe
Ai-je besoin d'une certaine manière à distinguer ce que je demande pour mes articles liés "parent" et non pas des grands modèles "parent"
- Vous pouvez poster votre disposition de table? Je ne suis pas en mesure de dire ce qui se passe ici.. Votre table enfant ne devrait avoir qu'une seule référence à la ligne parent.. Votre
->hasMany()
d'un ENFANT à un PARENT, est-ce que la référence. Vous devrez peut-être fournir le deuxième argument de la définition de la relation parent-enfant de la clé.
Vous devez vous connecter pour publier un commentaire.
Appelé avec
Je ne suis pas sûr au sujet de la requête d'une partie, mais au premier abord, ne serait pas en passant de 0 à la fonction encore vous inscrire à l' $variable parent comme faux? Alors peut-être il suffit de vérifier si le parent n'est pas null.
En PHP 0 = FALSE, changer ce
if( $parent ){
pour cette
if( $parent !== false ){