gpt4 book ai didi

laravel - 为什么 Model 不通过 slug 返回除 id 之外的数据?

转载 作者:行者123 更新时间:2023-12-02 14:26:44 25 4
gpt4 key购买 nike

当我尝试通过 slug 而不是通过 id 获取 View 中的数据时,我遇到了 Laravel View 的问题。这是我的路线:

Route::get('post/{post}','PostController@post')->name('post');

这是 postController 函数:

public function post(post $post)
{
return view('user.post',compact('post'));
}

这是模型函数:

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

它收到错误 404,但是什么时候对路由进行一些更改:

Route::get('post/{slug}','PostController@post')->name('post');

它返回 View ,但不是我想要从表中获取的数据。

最佳答案

Laravel 的简介 implicit-binding

如果 /{post} 包含一个 id 并且你的表有 id 列,那么 Laravel 将处理它。

如果您希望模型绑定(bind)在检索给定模型类时使用除 id 之外的数据库列,您可以重写 Eloquent 模型上的 getRouteKeyName 方法:

public function getRouteKeyName()
{
return 'slug'; // db column name
}

在上面的问题中,您需要将方法名称 grtRouteKeyName 更正为 getRouteKeyName 拼写,希望它能起作用。

关于laravel - 为什么 Model 不通过 slug 返回除 id 之外的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59483597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com