用户上具有枢轴关系的Laravel隐式绑定
我认为这在拉雷维尔是不可能的,但我还是要问;) 我有一个用户上具有枢轴关系的Laravel隐式绑定,laravel,eloquent,Laravel,Eloquent,我认为这在拉雷维尔是不可能的,但我还是要问;) 我有一个组模型,它与用户有一个轴心关系(通过组用户)。我有一个组控制器,其中这是索引方法: public function index(Request $request) { return $request->user()->groups; } 用户中的组是一种归属关系。它将加载与用户有关系的所有组。这也将在透视关系中加载透视表 但是现在我想得到一个单独的组,这是一个控制器,可以得到一个具有枢轴关系的组: public fun
组
模型,它与用户
有一个轴心关系(通过组用户
)。我有一个组控制器,其中这是索引方法:
public function index(Request $request)
{
return $request->user()->groups;
}
用户
中的组
是一种归属关系。它将加载与用户有关系的所有组。这也将在透视关系中加载透视表
但是现在我想得到一个单独的组,这是一个控制器,可以得到一个具有枢轴关系的组:
public function show($id, Request $request)
{
$group = $request->user()->groups()->findOrFail($id);
$this->authorize('view', $group); // Authorization....
return $group;
}
public function show(Group $group)
{
return $group;
}
但我想使用如下隐式绑定:
public function show(Group $group)
{
$this->authorize('view', $group);
return $group;
}
但是它不会加载透视表,因为我没有通过用户获取它…
所以我应该通过用户获取组。但是如何使用隐式绑定实现这一点呢
当这不可能时:当我已经拥有组模型时,如何加载轴心关系
public function show(Group $group, Request $request)
{
// Load the pivot relation here in $group by using the user in $request->user()?
$this->authorize('view', $group);
return $group;
}
这是路由服务提供商
:
Route::bind('group', function ($value) {
if (auth()->check()) {
return auth()->user()->groups()->findOrFail($value);
} else {
abort(404);
}
});
这样甚至不需要视图
策略,因为组来自组关系:
public function show($id, Request $request)
{
$group = $request->user()->groups()->findOrFail($id);
$this->authorize('view', $group); // Authorization....
return $group;
}
public function show(Group $group)
{
return $group;
}
这是路由服务提供商
:
Route::bind('group', function ($value) {
if (auth()->check()) {
return auth()->user()->groups()->findOrFail($value);
} else {
abort(404);
}
});
这样甚至不需要视图
策略,因为组来自组关系:
public function show($id, Request $request)
{
$group = $request->user()->groups()->findOrFail($id);
$this->authorize('view', $group); // Authorization....
return $group;
}
public function show(Group $group)
{
return $group;
}
您是否试图在使用隐式绑定时加载关系?如果是这样的话,我想您可以在其中使用with()
。您是否试图在使用隐式绑定时加载关系?如果是这样的话,我想您可以在其中使用with()
。