繁体   English   中英

Laravel 更改 URL 名称详细信息

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM