1 定义路由
Route::get('路由表示',function(){
});
Route::post('路由表示',function(){
})
//只接受get、post类型的请求
Route::math([get','post'],function(){
})
//接受任何类型的请求
Route::any('路由表示',function(){
})
除了get请求类型以外框架默认会对路由请求做csrf令牌验证
关闭令牌验证的方法
1 将 Http/Kernel.php文件中的 (\App\Http\Middleware\VerifyCsrfToken::class)中间件注释掉
2 添加白名单, 在 Http/Middleware/VerifyCsrfToken.php中间件文件中的$except数组中将对应的路由标识添加上,格式如下
protected $except = [
'admin' //路由标识
];
2 路由参数
//定义了一个必须传的name参数如果不传则会报错路由请求列如:www.baidu.com/admin/zhangsan(参数对应位置接可以了不用再加个name在前面)
Route::get('admin/{name}',function($name=''){
});
//定义一个非必传的name参数
Route::get('admin/{name?}',function($name=''){
});
路由参数筛选验证
(1) Route::get('admin/{name?}',function($name=''){
})->where('name','/^[A-z]$/');
Route::get('user/{id}/{name}', function ($id, $name) {
// 同时指定 id 和 name 的数据格式
})->where(['id' => '[0-9]+', 'name' => '[a-z]+']
(2) 全局验证
在Http/Providers/RouteServiceProvider.php 的boot方法中添加
public function boot()
{
Route::pattern('name', '[0-9]+');
parent::boot();
}
3 路由别名
Route::get('admin/{name?}',function($name=''){
})->name('houtai');
4 路由重定向
Route::redirect('aaa','admin')
Route::get('admin/{name?}',function($name=''){
return redirect('admin')
return redirect()->route('houtai')
return redirect()->route('houtai',['name'=>'zhangshan'])//相当于创建一个URL
})
Route::get('admin/{name?}',function($name=''){
})->name('houtai');
5路由前缀
http://test-laravel.com/ad/ccc
Route::prefix('ad')->get('ccc',function(){
});
6路由分组
Route::prefix('aa')->group(function(){
Route::get('ab',function(){
});
Route::get('ac',function(){
});
});
7 路由命名空间
命名空间是为了更加方便访问控制
先建一个Indexcontroller的控制器
路由访问http://test-laravel.com/home/index
Route::prefix('home')->get('index','App\Http\Controllers\Home\IndexController@index');
当打开下图注释后
Route::prefix('home')->get('index','Home\IndexController@index');
运用命名空间访问http://test-laravel.com/index
Route::namespace('Home')->group(function(){ Route::get('index', 'IndexController@index');# RouteServiceProvider.php 中提供的控制器命名空间 打开 });
8 路由访问控制器方法