Laravel路由

注册路由

http/route.php

基本路由

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

Route::get('/test/returnHello',function(){return"helloworld";});

默认路由

Route::get('/token/get',['as'=>'get_token','uses'=>'Auth@token']);

可用路由方法

Route::get($uri,$callback);

Route::post($uri,$callback);

Route::put($uri,$callback);

Route::patch($uri,$callback);

Route::delete($uri,$callback);

Route::options($uri,$callback);

响应多个HTTP请求的路由

Route::match(['delete','get'],'/test/match_test',function(){return"match";});

响应所有HTTP请求的路由

Route::redirect('/here', '/there');

重定向路由

Route::redirect('/here', '/there');

路由组

Route::group(['prefix' => 'auth', 'as' => 'auth.'], function(){
      Route::post('/login', ['as' => 'login', 'uses' => 'Auth@login']);
      Route::post('/get_csrf', ['as' => 'get_csrf', 'uses' => 'View/Pages@get_csrf']);
      Route::get('/logout', ['as' => 'logout', 'uses' => 'Auth@logout']);
      Route::post('/update_pages', ['as' => 'update_pages', 'uses' => 'Auth@update_pages']);
    });

中间件

Route::group(['middleware' => 'auth:ajax'], function()

命名空间

Route::group(['prefix' => 'base', 'as' => 'base.', 'namespace' => 'Base'], function ()

子域名路由

路由组也可以用来处理子域名。子域名可以像路由 URI 一样被分配路由参数,允许你获取一部分子域名作为参数给路由或控制器使用。可以在 group 之前调用 domain 方法来指定子域名:

Route::domain('{account}.myapp.com')->group(function () {

Route::get('user/{id}', function ($account, $id) {

//

});

});

路由前缀

可以用 prefix 方法为路由组中给定的 URL 增加前缀。例如,你可以为组中所有路由的 URI 加上 admin 前缀:

Route::prefix('admin')->group(function () {

Route::get('users', function () {

// 匹配包含 "/admin/users" 的 URL

});

});

路由模型绑定

当向路由或控制器行为注入模型 ID 时,就需要查询这个 ID 对应的模型。Laravel 为路由模型绑定提供了一个直接自动将模型实例注入到路由中的方法。例如,你可以注入与给定 ID 匹配的整个 User 模型实例,而不是注入用户的 ID。

Route::get('/test/user/{usera}',function(App\Model\UserInfo $usera){return $usera;});

自定义键名

如果你想要模型绑定在检索给定的模型类时使用除 id 之外的数据库字段,你可以在 Eloquent 模型上重写 getRouteKeyName 方法:

/**

* @overRide

* 获取该模型的路由的自定义键名。

*

* @return string

*/

public function getRouteKeyName()

{

return 'name';

}