如何在Laravel for Pivot模型中使用用户路由模型绑定

雷努加

Laravel输入:5.7

PHP v:7.2.10

路由路径为:admin/apartments/{apartment}/associations/{association}/association-users/{association_user}
获取URL:http://127.0.0.1:8000/admin/apartments/1/associations/1/association-users

枢轴模型: AssociationUser

在中App\Providers\RouteServiceProvider,我已添加

public function boot()
    {
        parent::boot();

        Route::bind('association-user', function ($value) {
            return App\pivotes\AssociationUser::where('association_id', request()->route()->parameter('association')->id)->where('user_id', auth()->id())->first() ?? abort(404);
        });
    }

路线创建

route('apartments.associations.association-users.show', ['apartment' => $associationUser->association->apartment, 'association' => $associationUser->association, 'association_user' => $associationUser ])
Prafulla Kumar Sahu

如果我没有记错的话,association_user数据透视表应该具有association_id和user_id,并且两者的组合将是唯一的,因此在您的路线中已经存在{association}模型,因此我相信您可以使用

public function getRouteKeyName()
{
    return 'user_id';
}

在您的数据透视模型类中,以便user_id将出现在您的URL中,并且您将具有关联和用户模型的组合。

不需要

 Route::bind('association-user', function ($value) {
            return App\pivotes\AssociationUser::where('association_id', request()->route()->parameter('association')->id)->where('user_id', auth()->id())->first() ?? abort(404);
        }); 

在你的 App\Providers\RouteServiceProvider

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章