laravel 中条件的嵌套关系
nested relation with condition in laravel
我有3个模型
用户 - 角色 - 权限
用户
class User extends Model
{
protected $fillable = [
'name', 'email', 'password',
];
public function roles()
{
return $this->belongsToMany(Role::class);
}
}
角色
class Role extends Model
{
protected $fillable = ['name' , 'label'];
public function users()
{
return $this->belongsToMany(User::class);
}
public function permissions()
{
return $this->belongsToMany(Permission::class);
}
}
权限
class Permission extends Model
{
protected $fillable = ['name' , 'label'];
public function roles()
{
return $this->belongsToMany(Role::class);
}
}
我想获取在特定日期更新权限的用户列表
我知道我应该使用类似下面的东西,但我不知道如何使用 Where
$users = User::with('roles.permissions')->orderBy('name', 'asc')->paginate(25);
非常感谢
使用whereHas()
:
$users = User::whereHas('roles.permissions', function($query) use($date) {
$query->whereDate('permission_role.updated_at', $date);
})->orderBy('name', 'asc')->paginate(25);
我有3个模型
用户 - 角色 - 权限
用户
class User extends Model
{
protected $fillable = [
'name', 'email', 'password',
];
public function roles()
{
return $this->belongsToMany(Role::class);
}
}
角色
class Role extends Model
{
protected $fillable = ['name' , 'label'];
public function users()
{
return $this->belongsToMany(User::class);
}
public function permissions()
{
return $this->belongsToMany(Permission::class);
}
}
权限
class Permission extends Model
{
protected $fillable = ['name' , 'label'];
public function roles()
{
return $this->belongsToMany(Role::class);
}
}
我想获取在特定日期更新权限的用户列表
我知道我应该使用类似下面的东西,但我不知道如何使用 Where
$users = User::with('roles.permissions')->orderBy('name', 'asc')->paginate(25);
非常感谢
使用whereHas()
:
$users = User::whereHas('roles.permissions', function($query) use($date) {
$query->whereDate('permission_role.updated_at', $date);
})->orderBy('name', 'asc')->paginate(25);