laravel(三)-laravel路由

什么是路由?路由有什么作用?

  1. 路由简单来说就是,接收用户的请求,并且转发给相应的程去处理
  2. 作用建立url和程序之间的映射
  3. 一般有以下常见的请求方式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]+');
});

发表评论

电子邮件地址不会被公开。 必填项已用*标注