Laravel资源控制器处理的动作
来源:互联网 发布:中国股市周期 知乎 编辑:程序博客网 时间:2024/05/20 14:26
+--------+---------------------------------------------------------------------------------------------------------------------------------
| Method | URI 路由 | Name | Action | Middleware |
+--------+---------------------------------------------------------------------------------------------------------------------------------
|GET|HEAD | / | | Closure | web |
----------------------------------------------------------------------------------------------------------------------------------------------
|GET|HEAD | admin/category | category.index | App\Http\Controllers\Admin\CategoryController@index | web,admin.login | 显示列表|POST | admin/category | category.store | App\Http\Controllers\Admin\CategoryController@store | web,admin.login | 添加-接收数据提交
|GET|HEAD | admin/category/create | category.create | App\Http\Controllers\Admin\CategoryController@create | web,admin.login | 添加页面的显示
| DELETE | admin/category/{category} | category.destroy | App\Http\Controllers\Admin\CategoryController@destroy | web,admin.login | 删除(删除单个)
|GET|HEAD | admin/category/{category} | category.show | App\Http\Controllers\Admin\CategoryController@show | web,admin.login | 显示单个信息
| PUT |PATCH | admin/category/{category} | category.update | App\Http\Controllers\Admin\CategoryController@update | web,admin.login | 接收并更新数据
|GET|HEAD | admin/category/{category}/edit | category.edit | App\Http\Controllers\Admin\CategoryController@edit | web,admin.login | 编辑修改
资源控制器
Laravel 的资源控制器使得构建围绕资源的 RESTful 控制器变得毫无痛苦,例如,你可能想要在应用中创建一个控制器,用于处理关于图片存储的 HTTP 请求,使用 Artisan 命令 make:controller
,我们可以快速创建这样的控制器:
php artisan make:controller PhotoController --resource
该 Artisan 命令将会生成一个控制器文件 app/Http/Controllers/PhotoController.php
,这个控制器包含了每一个资源操作对应的方法。
接下来,可以为该控制器注册一个资源路由:
Route::resource('photos', 'PhotoController');
这个路由声明包含了处理图片资源 RESTful 动作的多个路由,相应地,Artisan 生成的控制器也已经为这些动作设置了对应的处理方法。
资源控制器处理的动作
/photos
indexphotos.indexGET/photos/create
createphotos.createPOST/photos
storephotos.storeGET/photos/{photo}
showphotos.showGET/photos/{photo}/edit
editphotos.editPUT/PATCH/photos/{photo}
updatephotos.updateDELETE/photos/{photo}
destroyphotos.destroy指定资源模型
如果你在使用路由模型绑定并且想要在资源控制器的方法中对模型实例进行类型提示,可以在生成控制器的使用使用 --model
选项:
php artisan make:controller PhotoController --resource --model=Photo
伪造表单方法
由于 HTML 表单不能发起PUT
、PATCH
和DELETE
请求,需要添加一个隐藏的 _method
字段来伪造 HTTP 请求方式,辅助函数 method_field
可以帮我们做这件事:
{{ method_field('PUT') }}
部分资源路由
声明资源路由时可以指定该路由处理的动作子集:
Route::resource('photo', 'PhotoController', ['only' => ['index', 'show']]);Route::resource('photo', 'PhotoController', ['except' => ['create', 'store', 'update', 'destroy']]);
命名资源路由
默认情况下,所有资源控制器动作都有一个路由名称,不过,我们可以通过传入 names
数组来覆盖这些默认的名字:
Route::resource('photo', 'PhotoController', ['names' => ['create' => 'photo.build']]);
命名资源路由参数
默认情况下, Route::resource
将会基于资源名称的单数格式为资源路由创建路由参数,你可以通过在选项数组中传递 parameters
来覆盖这一默认设置。 parameters
应该是资源名称和参数名称的关联数组:
Route::resource('user', 'AdminUserController', ['parameters' => [ 'user' => 'admin_user']]);
上面的示例代码会为资源的 show
路由生成如下 URL:
/user/{admin_user}
补充资源控制器
如果有必要在默认资源路由之外添加额外的路由到资源控制器,应该在调用 Route::resource
之前定义这些路由;否则,通过 resource
方法定义的路由可能无意中优先于补充的额外路由:
Route::get('photos/popular', 'PhotoController@method');Route::resource('photos', 'PhotoController');
参考资料:http://laravelacademy.org/post/6745.html注:注意保持控制器的单一职责,如果你发现指向控制器动作的路由超过默认提供的资源控制器动作集合了,考虑将你的控制器分割成多个更小的控制器。
- Laravel资源控制器处理的动作
- Laravel的资源控制器
- Laravel的资源控制器
- 处理控制器输入动作
- laravel资源路由的中控制器中相关方法的解析
- Laravel 控制器
- laravel控制器
- laravel资源路由,控制器中的接收方式,详解
- laravel资源路由,控制器中的接收方式,详解
- Yii控制器动作的编写方法
- LARAVEL的第一个控制器程序
- Laravel路由和控制器的绑定
- java 动作事件的处理
- 动作技能的处理思路
- Cocos2D-Android- 动作的处理
- yii 控制器 动作名
- 【Yii】控制器和动作
- 6. laravel 控制器
- 图形图像网络参考资料
- java 内存模型
- LayUi Upload组件 和 C# .Net asp
- I2S音频总线学习(四)I2S接口设计
- 第十四周——项目二—用哈希法组织关键字
- Laravel资源控制器处理的动作
- This function or variable may be unsafe. Consider using fopen_s instead
- adb调试 由于目标计算机积极拒绝,无法连接。 (10061)
- 网络访问之HttpURLConnection
- 敏捷教练 V 形六步法实战:从布朗运动到深度协作
- 求两个数的最大公约数
- 开源项目PullToRefresh详解(一)——PullToRefreshListView
- 在RHEL上安装Docker
- 关于函数重载在结构体,在不同容器中的使用