laravel Hasmany其中id或another_id

时间:2014-12-31 15:12:27

标签: laravel eloquent has-many

我怎样才能在模型中使用函数?

Select * from friends where (user_id = 22 or content_id = 22) and type=2 and situation = 1;

我尝试了,但它给出了错误;

public function friends() { 
    return $this->hasMany('Friends',function ($query) {
        $query->where('content_id', $this->attributes['id']);
        $query->orWhere('user_id',$this->attributes['id']);
    })->where('type',2)->where('situation',1)->orderBy('id','DESC');
}

1 个答案:

答案 0 :(得分:2)

首先,是您的型号名称'朋友'或者仅仅是朋友'?假设您遵循惯例并使用单数时态作为模型名称,这应该有效:

return $this->hasMany('Friend')->where(function($query) {
    $query->where('content_id', $this->attributes['id']);
    $query->orWhere('user_id',$this->attributes['id']);
})->where('type',2)->where('situation',1)->orderBy('id','DESC');

换句话说,在hasMany()关系之后添加其他查询参数,而不是第二个参数的闭包。