我有用于存储用户菜单的表格,如下所示:
表:模块
表格:菜单
表:menu_user
表:用户
关系将如下:
[users]
- <menu_user>
- [menus]
- [modules]
模块有很多菜单;用户和菜单之间的关系是多对多的。
我只能获得用户的菜单:
$data = User::with('menus')->where('id', 2);
如果我想要拥有模块处于活动状态的用户菜单的Eloquent方式?
答案 0 :(得分:0)
另一种方法是来自用户端并使用与模块的嵌套关系,例如
User::where('users.id', 1)
->with(array('menus.module' => function($query) {
$query->where('modules.status', '=', 'active');
})
)->get();
这取决于模型中的以下内容:
用户
public function menus()
{
return $this->belongsToMany('Menu');
}
菜单
public function module(){
return $this->belongsTo('Module');
}
模块
public function menu(){
return $this->hasMany('Menu');
}
格伦