定义资源路由 resource 方法,第一个参数资源名称为什么是 users?

Route::resource('users', 'UsersController');
第一个参数资源名称users,这和UsersController有关系吗?
我还测试了一下,资源名称必须是user或users才能正常使用。

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

有的,这是做路由绑定,是把 usersUsersController 控制器进行了绑定,这样就会生成RESTful API的路由。

包含增删改查,省去一步一步配置路由的繁琐。 可以通过 php artisan route:list 进行路由查看。

5年前 评论
讨论数量: 7

有的,这是做路由绑定,是把 usersUsersController 控制器进行了绑定,这样就会生成RESTful API的路由。

包含增删改查,省去一步一步配置路由的繁琐。 可以通过 php artisan route:list 进行路由查看。

5年前 评论

@qloog 我还测试了一下,资源名称必须是user或users才能正常使用。这又是为什么呀?绑定时,只能用user或users来绑定?

5年前 评论

@Buck323 这个名称可以任意写,不是必须 userusers

5年前 评论

@qloog 可是我自己测试一下,只有user或users才能正常显示用户信息?

5年前 评论

@Buck323 主要是看绑定到的控制器,一般建议是控制器名称的复试形式。

比如你的控制器是 UserController.php, 那么推荐路由名称就是 users。基本上按这个来就可以了。用其他的名称理解起来会困难点。

如果换了不能访问,可以把错误消息贴出来。

5年前 评论

@qloog 谢谢你,参数资源名称是绑定的控制器的名称

5年前 评论

@Buck323
是不是因为,如果把Route::resource('users', 'UsersController');里的users改成别的,比如abcd
那么
Route::get('/users/{user}', 'UsersController@show')->name('users.show');
就会变成
Route::get('/abcd/{abcd}', 'UsersController@show')->name('abcd.show');
其中{abcd}应该是一个Model的名字,但是其实不存在这个model,所以找不到任何数据来显示,所以我们打开
http://sample.test/abcd/1
时,内容就会是空的。
这样说对不对?

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!