无法在多对多的关系中做“在哪里”

时间:2014-02-09 12:59:38

标签: sql laravel many-to-many eloquent

例如,我有UsersRoles和多个名为user_role的表。我想做User::with('roles')->where('role', '=', 'admin')->get()之类的事情。但是,它无法识别Roles表中的“角色”字段。如何在中间表上实现where子句而不是在另一个中加入?

如何定义我的多对多关系:

class User extends Eloquent {

    public function roles()
    {
        return $this->belongsToMany('Role');
    }

}

1 个答案:

答案 0 :(得分:0)

感谢laravel.io的病人:

User::whereHas('roles', function($query)
{
  $query->where('role', '=', 'admin');
})->get();