我知道我可以使用getRouteKeyName
方法更改整个模型的路径关键字名称,但是如何更改单个路径的路径关键字名称?假设我有一个Post模型,并且路由键名显然是id
,我想为slug
路由有show
键名。是否可以通过某种方式管理getRouteKeyName
方法来实现该目标?
public function getRouteKeyName()
{
return 'slug';
}
答案 0 :(得分:1)
找到了解决方案:)
在AppServiceProvider
类中,我将以下代码添加到boot
方法中。
Route::bind('posts.show', function ($value) {
return App\Post::where('slug', $value)->first() ?? abort(404);
});