Laravel 资源路由在路由列表中不包含任何参数

问题描述 投票:0回答:1
GET|HEAD        blogs ..................................................................................... blog.index › Blog\BlogController@index  
  POST            blogs ..................................................................................... blog.store › Blog\BlogController@store  
  GET|HEAD        blogs/create ............................................................................ blog.create › Blog\BlogController@create  
  GET|HEAD        blogs/{} .................................................................................... blog.show › Blog\BlogController@show  
  PUT|PATCH       blogs/{} ................................................................................ blog.update › Blog\BlogController@update  
  DELETE          blogs/{} .............................................................................. blog.destroy › Blog\BlogController@destroy  
  GET|HEAD        blogs/{}/edit ............................................................................... blog.edit › Blog\BlogController@edit  

您好,我正在尝试在我的网站上添加博客功能。我创建了一个没有软删除功能的迁移表。然后我创建了一个模型,然后我使用

php artisan make:controller Blog/BlogController --model=Blog --resource
创建了一个控制器。

// __________Route for blogs
Route::prefix('blogs')->name('blog.')->group(function () {
    Route::resource('', BlogController::class);
});

我就是这么称呼这条路线的。一切都运转良好。索引、创建、存储方法。但正如您所看到的,商店路由内部有参数传递。如果我也调用该路线,则会出现 404 错误。如果有人知道这个问题请帮忙。

我尝试通过资源路由(如

<a href="{{ route('blog.show', $blog) }}" class="btn btn-secondary">Read More</a>
)从控制器调用 show 方法。但上升404

laravel-blade bootstrap-5 laravel-11 laravel-resource laravel-service-container
1个回答
0
投票

这是因为Route::resource()中第一个空参数。第一个参数不能为空。

Route::resource('blogs', BlogController::class);

它会自动注册名称和前缀。

© www.soinside.com 2019 - 2024. All rights reserved.