GolangHub

公众号:Golang语言开发栈

Laravel HTTP路由 控制器

Laravel HTTP路由 控制器

文件路径:/app/Http/routes.php

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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
<?php

/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|
*/

Route::get('/', function () {
// return view('welcome'); // 视图
return view('index'); // 视图
});

// 最基本的路由,接收一个URI和一个闭包
// 注册路由来响应任何 HTTP 请求:

// Route::get($uri, $callback);
Route::get('/test', function () {
echo 'get';
});

// Route::post($uri, $callback);
Route::post('/test', function () {
echo 'post';
});

// Route::put($uri, $callback);
Route::put('/test', function () {
echo 'put';
});

// Route::patch($uri, $callback);
Route::patch('/test', function () {
echo 'patch';
});

// Route::delete($uri, $callback);
Route::delete('/test', function () {
echo 'delete';
});

// Route::options($uri, $callback);
Route::options('/test', function () {
echo 'options';
});

// 注册路由响应多个 HTTP 请求
/*
Route::match(['get', 'post'], '/', function () {
//
});
*/
Route::match(['get', 'post'], '/match', function () {
echo 'match';
});

// 注册一个路由来响应所有 HTTP 请求:
/*
Route::any('foo', function () {
//
});
*/
Route::any('/any', function () {
echo 'any';
});

// 路由参数

// 必选参数
Route::get('/user/{uid}', function ($uid) {
echo $uid;
});

// 多个路由参数
Route::get('/uid/{uid}/username/{username}', function ($uid, $username) {
echo $uid.'--'.$username;
});

// 可选参数(在参数名后面加一个?实现,这种情况需要给相应的变量指定默认值)
Route::get('/user1/{uid?}', function ($uid = null) {
echo $uid;
});

// 正则约束(where方法接收一个参数名和一个正则表达式来约束该参数)
Route::get('/user2/{uid}', function ($uid) {
echo $uid;
})->where('uid','[0-9]+');

// 正则约束多个参数
Route::get('/uid1/{uid}/username1/{username}', function ($uid, $username) {
echo $uid.'--'.$username;
})->where(['uid' => '[0-9]+', 'username' => '[a-z]+']);

// 全局约束
/*
* 1、在/app/Providers/RouteServiceProvider类中的bool方法中定义。
* 2、使用pattern方法,给想要的路由参数定义全局正则约束。$router -> pattern('uid', '[0-9]+');
*/

// 路由访问控制器 控制器名称@方法名称
// Route::get('user/{id}', 'UserController@showProfile');
Route::get('/index', 'IndexController@index');

// 路由器访问控制器,分文件夹
/*
* 1、修改命名空间 namespace App\Http\Controllers\Admin;
* 2、引入继承的Controller use App\Http\Controllers\Controller;
* 3、修改路由 Admin\IndexController@index
*/
Route::get('/admin', 'Admin\IndexController@index');

// 命名路由
Route::get('/test1', ['as' => 'profile', function () {
echo route('profile');
echo '命名路由';
}]);

// 为控制器指定路由名称
Route::get('test2', [
'as' => 'profile', 'uses' => 'Admin\IndexController@index'
]);

// 使用name方法指定路由名称
Route::get('test3', 'Admin\IndexController@articlelist')->name('profile');

// 路由群组 group
// 路由前缀 profile
// 命名空间 namespace
// 资源路由 resource
// Route::get('admin/index', 'Admin\IndexController@index');
// Route::get('admin/articlelist', 'Admin\IndexController@articlelist');

Route::group(['profile' => 'admin', 'namespace' => 'Admin'], function () {
Route::get('index', 'IndexController@index');
Route::get('articlelist', 'IndexController@articlelist');
Route::resource('article', 'ArticleController');
});
更多精彩内容,请关注公众号 Golang语言开发栈公众号二维码
感谢赞赏.

Welcome to my other publishing channels