什么是路由?路由有什么作用?
- 路由简单来说就是,接收用户的请求,并且转发给相应的程去处理
- 作用建立url和程序之间的映射
- 一般有以下常见的请求方式get,put,post,patch,delete
基本路由介绍
如果访问相同的路由,以第二次为准
//用户使用GET 方式访问 /hello 这个地址,程序用匿名函数去响应用户请求
Route::get('/hello', function(){
return 'hello world';
});
//用户使用 POST 方式访问 /world 这个地址时,程序用匿名函数去响应用户请求
Route::post('/world', function(){
return 'world hello';
});
多请求路由介绍
//用户通过get或者post方式, 访问 /nice 时,程序使用 NiceController 中的 method() 方法去响应去响应用户请求
Route::match(['get','post'] , '/nice' , 'Niceontroller@method');
//用户通过GET,POST,PUT,DELETE.. 任何方法访问/test, 程序使用 都用匿名函数去响应请求
Route::any('/test', function () {
return 'Hello World';
});
路由参数
//用户访问/test/{user_name}/{user_id}类型的url的时候, 程序会抓取url上的user_name和user_id两个值,作为参数传递给响应函数,如果没有传递参数, 则会报错;
Route::get('/user/{user_name}/{user_id}', function ($user_name, $user_id) {
return '用户名及id:'.$user_name.$user_id;
});
//用户访问/user/{name?}的时候,name参数为可选参数,不传递时响应函数将采用变量的默认值进行处理
Route::get('/user/{name?}', function ($name = '') {
return $name;
});
路由参数限制
//用户访问/user/{id}/{name}的时候,路由会去验证要传递给响应函数的参数值类型是否为指定类型,不是指定类型程序会报错
Route::get('user/{id}/{name}', function ($id, $name) {
return '';
})->where(['id' => '[0-9]+', 'name' => '[a-z]+']);
路由别名(as)
//用户访问/user/info
Route::get('user/info', ['as'=>'info',function ($id, $name) {
//主要用于生成别名的路由url地址
return route('info');
}]);
路由群组
Route::group(['prefix'=>'product'],function(){
//访问产品列表需要访问/product/list
Route::get('/list', function ($id, $name) {
return 'list';
});
//访问产品列表需要访问/product/detail/1
Route::get('/detail/{id}', function ($id) {
//展示模板,传递数据,相当于thinkphp中的assign数据,display模板
$data = [];
return view('product.detail' , $data);
})->where($id,'[0-9]+');
});