创建及规则

使用下面的命令生成一个资源控制器:

  1. php think make:controller app\test\controller\Resource

效果图:
image.png

为这个资源控制器注册路由:

  1. <?php
  2. Route::resource('blog','test/Blog');

设置后会自动注册7个路由规则,如下:

请求类型 生成路由规则 对应操作方法
GET rescorce index
GET rescorce/create create
POST resource save
GET resource/:id read
GET resource/:id/edit edit
PUT resource/:id update
DELETE resource/:id delete

测试例子

我先注释其他定义的路由规则,以免产生冲突。

定义资源路由:

  1. <?php
  2. Route::resource('resource', 'test/Resource');

先查看下命令生成的这个 resource类

  1. <?php
  2. namespace app\test\controller;
  3. use think\Controller;
  4. use think\Request;
  5. class Resource extends Controller
  6. {
  7. /**
  8. * 显示资源列表
  9. *
  10. * @return \think\Response
  11. */
  12. public function index()
  13. {
  14. //
  15. }
  16. /**
  17. * 显示创建资源表单页.
  18. *
  19. * @return \think\Response
  20. */
  21. public function create()
  22. {
  23. //
  24. }
  25. /**
  26. * 保存新建的资源
  27. *
  28. * @param \think\Request $request
  29. * @return \think\Response
  30. */
  31. public function save(Request $request)
  32. {
  33. //
  34. }
  35. /**
  36. * 显示指定的资源
  37. *
  38. * @param int $id
  39. * @return \think\Response
  40. */
  41. public function read($id)
  42. {
  43. //
  44. }
  45. /**
  46. * 显示编辑资源表单页.
  47. *
  48. * @param int $id
  49. * @return \think\Response
  50. */
  51. public function edit($id)
  52. {
  53. //
  54. }
  55. /**
  56. * 保存更新的资源
  57. *
  58. * @param \think\Request $request
  59. * @param int $id
  60. * @return \think\Response
  61. */
  62. public function update(Request $request, $id)
  63. {
  64. //
  65. }
  66. /**
  67. * 删除指定资源
  68. *
  69. * @param int $id
  70. * @return \think\Response
  71. */
  72. public function delete($id)
  73. {
  74. //
  75. }
  76. }

测试路由一GET 请求访问 resource

控制器:

  1. <?php
  2. /**
  3. * 显示资源列表
  4. *
  5. * @return \think\Response
  6. */
  7. public function index()
  8. {
  9. //
  10. return 'Resouce/index';
  11. }

postman 测试:
image.png

结论:get 请求访问 resource 会执行 index()

测试路由一GET 请求访问 rescource/create

控制器:

  1. <?php
  2. /**
  3. * 显示创建资源表单页.
  4. *
  5. * @return \think\Response
  6. */
  7. public function create()
  8. {
  9. //
  10. return 'Resouce/create';
  11. }

postman 测试效果:
image.png

结论:GET 请求访问 rescource/create 会执行 create()

测试路由一其它访问暂时略过