首页 Order Laravel 正文

Laravel 资源控制器

金鹏头像 金鹏 Laravel 2022-04-01 10:04:36 0 410
导读:一.资源控制器     1.有一种控制器专门处理CURD(增删改查),方法很多且方法名基本固定;  &n...
.资源控制器

      1. 有一种控制器专门处理 CURD(增删改查),方法很多且方法名基本固定

      2. 对于这种控制器,我们可以将它设置为资源型控制器,不要大量设置路由

3. 这里推荐直接使用命令行生成资源路由,比如:

BlogController php artisan make:controller BlogController --resource

4. 成了的资源控制器会产生 7 个方法,配置好路由后会自动生成相关内容

Route ::resource( 'blogs ', 'BlogController ');    //单个资源路由

 

//批量定义资源路

Route ::resources([

'blogs ' =>  'BlogController '

]);

 

 

HTTP 类型

路由 URI

制器方法

由命名

描述

GET

blogs

index()

blogs.index

得数据列表

GET

blogs/create

create()

blogs.create

建页面(表单页)

POST

blogs

store()

blogs.store

创建页的接受处

GET

blogs/{blog}

show()

blogs.show

得一条数据

GET

blogs/{blog}/edit

edit()

blogs.edit

(表单页)

PUT/PATCH

blogs/{blog}

update()

blogs.update

从编辑页中接受处理

DELETE

blogs/{blog}

destroy()

blogs.destroy

除一条数据

 

       5. 如果我们注册了资源路由,那么如上图的资源路由 URI 和名称均自动创建生效;


http://localhost:8000/blogs/10/edit   //可以访问到 edit 方法

                   return route( 'blogs.store ');  //可以通过助手 route()了解是否注册


       6. 还有一条命令可以直接查看目前可用的路由以及命名;

php artisan route:list

 

      7. 们也可以限制资源路由只开放部分方法或排除部分方法,可以用命令查看;

//只有 index(),show()可访问

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

->only([ 'index ', 'show ']);

 

//排除 index(),show()的其它方法可访问

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

->except([ 'index ', 'show ']);

 

       8. 资源控制器还有一种不需要 HTML 页面方法的 API 路由,只提供数据接口;

//API 资源,并不需要 HTML 页面(create,edit),会排除

Route ::apiResource( 'blogs ', 'BlogController ');

 

//批量方式

Route ::apiResources([

'blogs ' => 'BlogController '

]);

 

      9. 当然,也支持一开始就生成一个不包含 HTML 页面方法的资源控制器;


10. 要注意的是,对应的资源路由,直接使用 api 资源路由即可; 

php artisan make:controller CommentController --api     

Route ::apiResource( 'comments ', 'CommentController ');


本文地址:https://www.jinpeng.work/?id=152
若非特殊说明,文章均属本站原创,转载请注明原链接。
广告3

欢迎 发表评论:

  • 请填写验证码

日历

«    2025年4月    »
123456
78910111213
14151617181920
21222324252627
282930

控制面板

您好,欢迎到访网站!
  查看权限
广告2

退出请按Esc键