You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 9中Route::resource与Route::get的区别是什么?

Laravel 9中两段路由代码的核心区别

首先得纠正第一段代码的语法错误:你写的Route::resource('/blog',[PostController::class);少了闭合括号,Laravel 9里正确的资源路由写法是Route::resource('/blog', PostController::class);(不用把控制器类名包进数组,除非要加额外配置项)。

下面是两者的核心差异:

  • 路由覆盖范围完全不同

    • Route::get('/blog',[PostController::class,'index']);:只注册1条GET请求路由,仅匹配/blog路径,唯一对应PostController的index方法(一般用来展示博客列表)。
    • Route::resource('/blog', PostController::class);:会自动生成7条符合RESTful风格的路由,覆盖GET/POST/PUT/DELETE等多种HTTP请求方法,对应控制器里约定好的7个方法:
      HTTP方法路径控制器方法用途
      GET/blogindex展示博客列表
      GET/blog/createcreate显示创建博客的表单页面
      POST/blogstore提交创建博客的表单数据
      GET/blog/{blog}show展示单篇博客详情
      GET/blog/{blog}/editedit显示编辑博客的表单页面
      PUT/PATCH/blog/{blog}update提交编辑博客的表单数据
      DELETE/blog/{blog}destroy删除指定博客
  • 适用场景不一样

    • 单条GET路由适合只需要展示列表的简单场景,或者需要自定义特殊逻辑的情况。
    • 资源路由适合做完整的CRUD(增删改查)功能,不用手动一条条写路由,遵循标准的资源管理风格,效率更高。
  • 路由命名差异

    • 单条GET路由默认没有命名(得手动加->name()才会有),而资源路由会自动生成规范的命名,比如blog.index、blog.create这些,方便在视图或控制器里用route()函数调用。

内容的提问来源于stack exchange,提问作者Lab Devices

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 09:42:49