[英]Laravel Change URL name detail
如何使帖子单一 URL 像 myweb.com/post-name 而不是 myweb.com/post-id ? 它适用于帖子 ID,但不适用于帖子名称。
这是我目前的路线。
Route::get('/{id}', [App\http\Controllers\PostController::class, 'show']);
这里是我的控制器。
public function show($id)
{
$post = post::find($id);
return view('detail', ['post' => $post]);
}
谢谢你。
那是因为您使用$id
作为标识符来解析 post 对象:
myweb.com/25
然后:
public function show($id) // $id = 25
{
$post = post::find($id); // find() search for the PK column, "id" by default
return view('detail', ['post' => $post]);
}
如果您想通过不同的字段解析$post
,请执行以下操作:
public function show($name)
{
$post = post::where('name', $name)->first();
return view('detail', ['post' => $post]);
}
这应该适用于这样的路线:
myweb.com/a-cool-post-name
作为旁注,您可以使用Route Model Binding自动解析模型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.