Laravel 4有许多WHERE子句

时间:2013-06-27 20:48:54

标签: laravel laravel-4

不确定这是否是向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的数据存在

我是否需要以某种方式区分我要求我的链接项“父母”而不是主要模型“父母”

3 个答案:

答案 0 :(得分:13)

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

调用
$menu_items = $menu->menuItems()->where('parent', 0)->get();

答案 1 :(得分:1)

我不确定查询部分,但最初不会将0传递给函数仍然将$ parent变量注册为false?所以也许只检查$ parent是否为空。

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

答案 2 :(得分:-1)

在PHP 0 = FALSE 中,更改此

if($ parent){

这个

if($ parent!== false){