用户上具有枢轴关系的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()