[英]Laravel 4.1 eager relationship “with” ignoring constraint clause
// class User
public function roles() {
return $this->belongsToMany('Role', 'user_roles', 'uid', 'rid');
}
// class Role
public function users() {
return $this->belongsToMany('User', 'user_roles', 'rid', 'uid');
}
// sql
-- user
id | name | other fields
-- user_role
id | name
-- user_roles, uid fk to user and rid fk to user_role
uid | rid
我正在尝试使用以下代码加载具有特定角色的用户,即加载所有编辑器:
<?php
$roleName = 'editors';
return \User::with(array('roles' => function($query) use($roleName) {
$query->where('name', '=', $roleName);
}))->get();
上面的代码返回每个用户,忽略$ query-> where。 怎么了?
您也可以尝试的另一种选择:
$role = new Role::find($role_id);
return $role->users->all();
这将返回所有用户
或者,如果您在某些地方:
$role = new Role::find($role_id);
return $role->users()->where('name','like','%foo%')->get();
这将返回所有具有foo名称的用户
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.