首页 > 解决方案 > Laravel 中单个路由的不同路由键名

问题描述

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

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

标签: laravelroutes

解决方案


找到了解决方案:)

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

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

推荐阅读