laravel中资源路由的资源控制器的解析

资源控制器让围绕资源构建RESTful模式控制器变得更简单。比如,你可能希望创建一个的控制器,用来管理通过你的应用储存的图片( "photos" )。通过Artisan命令行输入 controller:make 命令以及路由中的 Route::resource 方法快速创建一个控制器。

如果要通过命令行创建控制器,使用如下命令:

php artisan controller:make PhotoController

现在我们可以为这个控制器注册一个资源模式的路由:

Route::resource('photo', 'PhotoController');

这一个路由声明创建了多个路由规则,用来处理各种图像(photo)资源的RESTful操作。同样地,刚刚创建的控制器中已经包含了许多对应的方法。每个方法都带有注释说明,告诉你分别是用来处理什么URI和HTTP动词的。

资源控制器中不同操作的用途

Verb Path Action Route Name
GET /resource index resource.index
GET /resource/create create resource.create
POST /resource store resource.store
GET /resource/{resource} show resource.show
GET /resource/{resource}/edit edit resource.edit
PUT/PATCH /resource/{resource} update resource.update
DELETE /resource/{resource} destroy resource.destroy

有时你也许只需要处理其中一部分资源操作:

php artisan controller:make PhotoController --only=index,show

php artisan controller:make PhotoController --except=index

同样,你也许需要在路由中制定那一部分要处理的操作:

Route::resource('photo', 'PhotoController',
                array('only' => array('index', 'show')));

Route::resource('photo', 'PhotoController',
                array('except' => array('create', 'store', 'update', 'destroy')));

By default, all resource controller actions have a route name; however, you can override these names by passing a names array with your options:

Route::resource('photo', 'PhotoController', array('names' => array('create' => 'photo.build')));


以上的laravel4.3的文档(https://docs.golaravel.com/docs/4.1/controllers/#resource-controllers

刚开始的时候我很不明白,这个资源路由到底怎么回事,而控制器中的方法又是怎么定义的,后来慢慢明白了,上面的表格,其实就是控制器里面的方法名字,没有get,没有post,没有其他,简简单单一个单词,就是方法了!


注意:

1.当你在路由中已经定义了资源路由‘photo’,而你又感觉这些自带的方法不能满足你的项目需求,这时候你还是可以自定义一些路由和方法的,切记,此时定义的路由中不能呢再有photo,比如

Route::get('photo/detail','PhotoController@getDetail');
这样是严重不对的

2.在页面中也经常使用到路由,这时候可以这样写,

<a href="{{ Route('admcase.index', $iCaseSetId) }}">返回</a>
这是找资源路由对应的资源控制器的index方法,顺便带了一个参数





猜你喜欢

转载自blog.csdn.net/snow_love_xia/article/details/80524030