关于laravel5 资源路由

时间:2022-10-23 15:47:26

最近写项目发现Route::resource 这个东西真的巨好用!一下子能省好多行的代码!!很容易维护&&看起来舒服,代码体验贼棒棒。然后就记录一下用法,其实官方文档写的就很明白了,但是还是加深一下理解,怕忘2333

比如说我们要写一个文章模块的CURD,正常流程的话 

  1. 先建一个文章的模型,在cmd命令行输入
php artisan make:model Article

    2. 接下来再建一个相应的控制器

php artisan make:controller ArticleController

    在这个控制器里面写函数,进行文章的CURD

   3. 在route文件中分发路由

    比如说..

 
 Route::get('/article/create', 'ArticleController@create'); 

 Route::post('/article/create', 'ArticleController@store');
 /*删除文章*/
Route::post('/article/del/{id}', 'ArticleController@del');
/*编辑文章*/
Route::get('/article/edit/{id}', 'ArticleController@edit');
Route::post('/article/edit/{id}', 'ArticleController@update');
 

如果不用资源路由的话..大概要写这么多行

但是如果用Route::resource的话 我们写一行就行了!!

Route::resource('article', 'ArticleController');

如果我们以get的方式请求‘article’,会自动分发到ArticleController的create函数,

post 方式请求‘article’,会跳转到ArticleController的store函数。

其他情况类似,可以参考下面的表格。

动作

URI 行为 路由名称
GET /photos index photos.index
GET /photos/create create photos.create
POST /photos store photos.store
GET /photos/{photo} show photos.show
GET /photos/{photo}/edit edit photos.edit
PUT/PATCH /photos/{photo} update photos.update
DELETE /photos/{photo}
需要注意的是,以 PUT/PATCH/DELETE 请求时,需要在<form>标签内加一行
{{ method_field('PUT') }}
因为html表格不支持PUT/PATCH/DELETE 的 请求方法