Laravel-路由

▼魔方 西西 提交于 2020-02-11 06:54:55

1、基本路由


构建最基本的路由只需要一个 URI 与一个 闭包,这里提供了一个非常简单优雅的定义路由的方法:

Route::get('foo', function () {
return 'Hello World';
});
Route::get('/user', 'UsersController@index');
Route::get('user/profile', 'UserController@showProfile')->name('profile');
2、路由组
路由组允许共享路由属性,例如中间件和命名空间等,我们没有必要为每个路由单独设置共有属性,共有属性会以数组的形式放到 Route::group 方法的第一个参数中。

中间件:


Route::middleware(['first', 'second'])->group(function () {
Route::get('/', function () {
// 使用 `first` 和 `second` 中间件
});
});
为控制器组指定公共的 PHP 命名空间。这时使用 namespace 参数来指定组内所有控制器的公共命名空间:

Route::namespace('Admin')->group(function () {
// 在 "App\Http\Controllers\Admin" 命名空间下的控制器
});
绑定子域名:

Route::domain('{account}.myapp.com')->group(function () {
Route::get('user/{id}', function ($account, $id) {
//
});
});
路由前缀:

Route::prefix('admin')->group(function () {
Route::get('users', function () {
// 匹配包含 "/admin/users" 的 URL
});
});
3、资源路由

Route::resource('photos', 'PhotoController');
这个路由声明会创建多个路由来处理各种各样的资源操作。前面生成的控制器已经包含了这些操作的方法,同时还包括了 HTTP 动作和操作 URI 的注释。

动作 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} destroy photos.destroy
当声明一个资源路由时,你可以指定控制器处理部分操作,而不必使用全部默认操作:

Route::resource('photo', 'PhotoController', ['only' => [
'index', 'show'
]]);

Route::resource('photo', 'PhotoController', ['except' => [
'create', 'store', 'update', 'destroy'
]]);
资源路由命名:

Route::resource('photo', 'PhotoController', ['names' => ['create' => 'photo.build']]);
资源路由指定路由名前缀:

Route::resource('admin/article', 'ArticleController', ['as' => 'admin']);

---------------------
作者:一夜长风
来源:CSDN
原文:https://blog.csdn.net/wlzx120/article/details/77863538
版权声明:本文为博主原创文章,转载请附上博文链接!

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!