控制器将相关的请求处理逻辑组成一个单独的类。

基础控制器

定义

执行命令生成控制器

1
php artisan make:controller Demo\UserController

路由:

1
Route::get('user/{id}', 'Demo\UserController@show');

控制器:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
namespace App\Http\Controllers\Demo;

use App\Http\Controllers\Controller;
use App\Models\Users;
use Illuminate\Http\Request;

class UserController extends Controller
{
/**
* Notes: 查询指定用户信息
* User: 62726
* Date: 2020/11/3
* Time: 16:24
* @param $id
* @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
*/
public function show($id)
{
$data = Users::all()->find($id)->toArray();
return response([$data]);
}
}

单行为控制器

定义一个只处理单个行为的控制器,你可以在控制器中放置一个 __invoke 方法
生成控制器:

1
php artisan make:controller Demo\ShowProfile --invokable

路由:

1
Route::get('user/{id}', 'Demo\ShowProfile');

控制器:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
namespace App\Http\Controllers\Demo;

use App\Http\Controllers\Controller;
use App\Models\Users;
use Illuminate\Http\Request;

class ShowProfile extends Controller
{
/**
* Handle the incoming request.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function __invoke($id)
{
$data = Users::all()->find($id)->toArray();
return response([$data]);
}
}

资源型控制器

资源路由通过单行代码即可将典型的「CURD (增删改查)」路由分配给控制器
生成控制器:

1
2
3
php artisan make:controller Demo\UserCurdController --resource
//指定资源模型
php artisan make:controller Demo\UserCurdController --resource --model=Models\Users

控制器代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php

namespace App\Http\Controllers\Demo;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class UserCurdController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}

/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}

/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}

/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}

/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}

/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}

/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}

路由:

1
Route::resource('users', 'Demo\UserCurdController');

资源控制器操作处理:
|HTTP 方法|URI|动作|路由名称|
|:—-:|:—-:|:—-:|:—-:|
|GET|users|index|users.index|
|GET|/users/create|create|users.create|
|POST|/users|store|users.store|
|GET|/users/{users}|show|users.show|
|GET|/users/{users}/edit|edit|users.edit|
|PUT/PATCH|/users/{users}|update|users.update|
|DELETE|/users/{users}|destroy|users.destroy|

待更新。。。