【发布时间】:2019-06-06 02:40:42
【问题描述】:
Laravel v: 5.7
PHP v: 7.2.10
路由路径为:admin/apartments/{apartment}/associations/{association}/association-users/{association_user}
获取网址: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 ])
【问题讨论】:
-
什么问题,你总是得到 404?
-
@thefallen 我得到的是索引页面而不是显示页面,你可以看到我在那里缺少模型。
-
我会将这个逻辑移到中间件或控制器方法中,因为使用路由绑定,这个东西是隐藏的,就像魔法一样,但它很糟糕。
-
@thefallen 为枢轴模型获取路由模型绑定的正确方法是什么?
-
您只需将其绑定到正确的模型类,并在中间件或控制器中验证它们之间是否存在关系。
标签: php laravel-5 eloquent pivot-table php-7.2