Laravel 4 如何获得用户的菜单,其中有活跃的模块在Laravel 4与雄辩?
我有表格存储用户菜单,如下所示: 表:模块 身份证件 名称 状态将具有以下值:活动/非活动 表:菜单 身份证件 模块id 链接 表:用户菜单 用户id 菜单id 参加 表:用户 身份证件 名称 暗语 这种关系将类似于: [用户]-[菜单]-[模块] 模块有很多菜单;用户和菜单之间的关系是多对多的 我只能获取用户菜单:Laravel 4 如何获得用户的菜单,其中有活跃的模块在Laravel 4与雄辩?,laravel-4,eloquent,Laravel 4,Eloquent,我有表格存储用户菜单,如下所示: 表:模块 身份证件 名称 状态将具有以下值:活动/非活动 表:菜单 身份证件 模块id 链接 表:用户菜单 用户id 菜单id 参加 表:用户 身份证件 名称 暗语 这种关系将类似于: [用户]-[菜单]-[模块] 模块有很多菜单;用户和菜单之间的关系是多对多的 我只能获取用户菜单: $data = User::with('menus')->where('id', 2); 我想让用户菜单中的模块处于活动状态,有什么好办法吗?另一种方法是来自用户端,并使用
$data = User::with('menus')->where('id', 2);
我想让用户菜单中的模块处于活动状态,有什么好办法吗?另一种方法是来自用户端,并使用与模块的嵌套关系,例如
User::where('users.id', 1)
->with(array('menus.module' => function($query) {
$query->where('modules.status', '=', 'active');
})
)->get();
这取决于模型中的以下各项:
使用者
菜单
模块
public function menu(){
return $this->hasMany('Menu');
}
Glen嗯,我发现这一个似乎适合我的需要:$data=Module::with['menus'=>function$q{$q->join'menu\u user','menus.id','=','menu\u user.menu id'->where'join','include'->where'user\u id',2;}]->where'status','active;也许其他人可以改进或有更好的答案是受欢迎的
public function module(){
return $this->belongsTo('Module');
}
public function menu(){
return $this->hasMany('Menu');
}