Laravel中单个路线的不同路线关键字名称

时间:2019-04-21 10:14:35

标签: laravel routes

我知道我可以使用getRouteKeyName方法更改整个模型的路径关键字名称,但是如何更改单个路径的路径关键字名称?假设我有一个Post模型,并且路由键名显然是id,我想为slug路由有show键名。是否可以通过某种方式管理getRouteKeyName方法来实现该目标?

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

1 个答案:

答案 0 :(得分:1)

找到了解决方案:)

AppServiceProvider类中,我将以下代码添加到boot方法中。

Route::bind('posts.show', function ($value) {
    return App\Post::where('slug', $value)->first() ?? abort(404);
});