【发布时间】:2019-09-10 21:42:16
【问题描述】:
我知道我可以使用getRouteKeyName 方法更改整个模型的路由键名称,但是如何更改单个路由的路由键名称?假设我有一个 Post 模型,并且路由键名显然是 id,我想为 show 路由设置 slug 键名。是否有可能以某种方式管理getRouteKeyName 方法来实现这一目标?
public function getRouteKeyName()
{
return 'slug';
}
【问题讨论】:
-
只需在函数
public function show($slug){ model::where('slug', $slug)->first();中使用slug,您就可以根据需要通过slug 或任何其他字段显示模型。ps后模型默认为id,您也可以相应地更改它。 -
谢谢,我知道,但问题是我到处都在使用 post show 路由,我不想每次都将 slug 参数传递给路由方法,比如
route( 'posts.show', [ 'post' => $post->slug ] )