当我尝试通过子弹而不是通过ID获取数据时,laravel视图存在问题。这是我的路线:
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中做一些更改时:
Route::get('post/{slug}','PostController@post')->name('post');
它返回视图,但不返回我要从表中获得的数据。
如果/ {post}包含一个ID,并且您的表具有ID列,那么Laravel会处理它。
如果您希望模型绑定在检索给定模型类时使用id以外的数据库列,则可以在Eloquent模型上重写getRouteKeyName方法:
public function getRouteKeyName()
{
return 'slug'; // db column name
}
在上述问题中,您需要将方法名称grtRouteKeyName
纠正为getRouteKeyName
拼写,希望它能起作用。
您拼错了getRouteKeyName()