6

これが hasMany 引数に追加のクエリを追加する正しい方法かどうかはわかりませんが、失敗しました。これは可能ですか?

public function menuItems($parent=false){
    if($parent){
        $menuItems = $this->hasMany('MenuItem')->where('parent',$parent);
    }else{
        $menuItems = $this->hasMany('MenuItem');
    }
    return $menuItems;
}

を使用して呼び出した場合

$menu_items = $menu->menuItems(0);

これは、親を渡すと空の配列を返すようです。MenuItem->parent = 0 のデータが存在するにもかかわらず

メインモデルの「親」ではなく、リンクされたアイテムの「親」を求めていることを何らかの方法で区別する必要がありますか

4

3 に答える 3

16
public function menuItems(){
        return $this->hasMany('MenuItem');
}

と呼ばれる

$menu_items = $menu->menuItems()->where('parent', 0)->get();
于 2013-06-28T17:11:10.087 に答える
1

クエリ部分についてはわかりませんが、最初は関数に 0 を渡さないで、$parent 変数を false として登録しますか? したがって、 $parent が null でないかどうかを確認してください。

public function menuItems($parent = null){
    if(!$parent == null)){
        $menuItems = $this->hasMany('MenuItem')->where('parent',$parent);
    }else{
        $menuItems = $this->hasMany('MenuItem');
    }
    return $menuItems;
}
于 2013-06-28T10:55:07.273 に答える
-2

PHP では0 = FALSE、これを変更します

if( $parent ){

このため

if( $parent !== false ){
于 2014-07-17T04:33:16.707 に答える