在网站PHP框架之Laravel5.5(五)Controller控制器这篇文章中介绍了控制器的基本用法,非常便利。
但是一个项目中肯定会存在必不可少的CURD增删改查的逻辑,如果每一项功能都用一种HTTP请求的话,路由文件将会很难看。
Laravel针对这一块特地做了资源控制器。
在项目跟目录输入命令:
php artisan make:controller UserController --resource
创建名为UserController的控制器,控制器类型为资源控制器。
这时候我们可以看到:
UserController.php文件就为一个资源控制器文件,我们打开可以看到代码:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function index()
{
//
}
public function create()
{
//
}
public function store(Request $request)
{
//
}
public function show($id)
{
//
}
public function edit($id)
{
//
}
public function update(Request $request, $id)
{
//
}
public function destroy($id)
{
//
}
}
可以看出创建的资源控制器默认给我们了7个方法,我们稍加修改:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function index()
{
return '所有用户列表';
}
public function create()
{
return '创建新用户的表单';
}
public function store(Request $request)
{
return '保存一个新的用户的逻辑';
}
public function show($id)
{
return '用户的ID是'.$id;
}
public function edit($id)
{
return '修改用户信息的表单';
}
public function update(Request $request, $id)
{
return '修改用户信息的逻辑';
}
public function destroy($id)
{
return '删除用户成功';
}
}
但是这样还没有完成哦,因为这是把控制器做好了,我们现在回到web.php文件,添加:
Route::resource('users','UserController');
就这样一行简单的路由代码,我们就成功的搞定了一系列的路由,毕竟路由都把责任推给了控制器了。
我们可以用:
php artisan route:list
查看项目路由列表:
+--------+-----------+-------------------+---------------+---------------------------------------------+--------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+-----------+-------------------+---------------+---------------------------------------------+--------------+
| | GET|HEAD | / | | App\Http\Controllers\SiteController@index | web |
| | GET|HEAD | about | | App\Http\Controllers\SiteController@about | web |
| | GET|HEAD | api/user | | Closure | api,auth:api |
| | GET|HEAD | users | users.index | App\Http\Controllers\UserController@index | web |
| | POST | users | users.store | App\Http\Controllers\UserController@store | web |
| | GET|HEAD | users/create | users.create | App\Http\Controllers\UserController@create | web |
| | GET|HEAD | users/{user} | users.show | App\Http\Controllers\UserController@show | web |
| | PUT|PATCH | users/{user} | users.update | App\Http\Controllers\UserController@update | web |
| | DELETE | users/{user} | users.destroy | App\Http\Controllers\UserController@destroy | web |
| | GET|HEAD | users/{user}/edit | users.edit | App\Http\Controllers\UserController@edit | web |
+--------+-----------+-------------------+---------------+---------------------------------------------+--------------+
现在我们就可以用Postman去测试连接:
接下来大家自行测试吧。
值得一提的是有些请求可能会出现419状态码,这是由于Laravel默认开启CSRF token安全验证。
这个问题解决方法就在app/Http/Middleware/VerifyCsrfToken.php这个文件里,
我们把protected $except = [ ]里面填上'*'。
protected $except = [
'*'
];
系列文章: