路由的使用
composer create-project laravel/laravel learnlaravel5 在命令框里下载
/**
* 一.简单路由
* Laravel 中最简单的路由由一个 URI 和一个闭包调用组成。
* 构造方法有: Route::get、Route::post、Route::put、
* Route::patch、Route::delete、Route::options、
* Route::any、Route::match、Route::resource、
* Route::resources、Route::group
* Route::get('login', '控制器类名称@方法');
*as=‘academy’就是定义变量名为profile
*简单路由 返回'Hello LaravelAcademy!'
**/
Route::get('/hello/laravelacademy',['as'=>'academy',function(){
return 'Hello LaravelAcademy!';
}]);
/**
* 一.1.根据as指向的路由
*输出as指向的路由 http://www.kimen.com/public/hello/laravelacademy
*/
Route::get('/testNamedRoute',function(){
return route('academy');
});
/**
* 一.2
*访问http://www.kimen.com/public/testNamedRoute 跳转至
*http://www.kimen.com/public/hello/laravelacademy
*并输出内容
*/
Route::get('/testNamedRoute',function(){
return redirect()->route('academy');
});
/**
* 二.路由带参数访问
* 访问http://www.kimen.com/public/testNamedRoute
*跳转http://www.kimen.com/public/hello/laravelacademy/3
*带参数的路由输出 'Hello LaravelAcademy $id!'
*/
Route::get('/hello/laravelacademy/{id}',['as'=>'academy',function($id){
return 'Hello LaravelAcademy '.$id.'!';
}]);
/*
*测试参数路由
*/
Route::get('/testNamedRoute',function(){
return redirect()->route('academy',['id'=>2]);
});
/**
* 三.路由分组
*/
Route::group(['as' => 'admin::'], function () {
/*
*根据get中as指向的参数输出该跳转地址
*http://www.kimen.com/public/dashboard
*/
Route::get('str', ['as' => 'dashboard', function () {}]);
Route::get('/testNamedRoute',function(){
return route('admin::dashboard');
});
/*
*根据get中as指向的参数输出该跳转地址
*http://www.kimen.com/public/index
*/
Route::get('index', ['as' => 'index', function () {}]);
Route::get('/test',function(){
return route('admin::index');
});
});
/**
* 四.运用中间件使用路由
* 在Laravel中,中间件的实现其实是依赖于Illuminate\Pipeline\Pipeline这个类实现的
* 在cmd 项目根目录运行
* php artisan make:middleware wMiddleware
* 生成测试用户的中间件
* 需更改配置文件
*'test'为中间件的命名
* /app/Http/Kernal.php文件,新增TestMiddleware到Kernel的$routeMiddleware属性:
* protected $routeMiddleware = [
* 'auth' => \App\Http\Middleware\Authenticate::class,
* 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
* 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
* 'test' => \App\Http\Middleware\TestMiddleware::class,
* ];
*
* 使用中间件定义路由
* 根据年龄参数 判断是否能能进行访问
*/
Route::group(['middleware'=>'test'],function(){
/**
* 访问http://www.kimen.com/public/write/laravelacademy?age=15
*/
Route::get('/write/laravelacademy',function(){
return "成功进入";
//使用Test中间件
});
/**
* 访问http://www.kimen.com/public/update/laravelacademy?age=15
*/
Route::get('/update/laravelacademy',function(){
return "成功进入";
//使用Test中间件
});
});
Route::get('/age/refuse',['as'=>'refuse',function(){
return "未成年人禁止入内!";
}]);
/*
*五.路由前缀
*该路由群组统一前缀
*http://www.kimen.com/public/laravelacademy/update
*/
Route::group(['prefix'=>'laravelacademy'],function(){
Route::get('write',function(){
return "Write LaravelAcademy";
});
Route::get('update',function(){
return "Update LaravelAcademy";
});
});
/*
*路由前缀加参数
*该路由群组统一前缀 可加参数
*http://www.kimen.com/public/laravelacademy/'自定义'/update
*/
Route::group(['prefix'=>'laravelacademy/{version}'],function(){
Route::get('write',function($version){
return "Write LaravelAcademy {$version}";
});
Route::get('update',function($version){
return "{$version}";
});
});
/**
*六.子域名
*子域名可以通过domain关键字来设置:
*/
Route::group(['domain'=>'{service}.kimen.com'],function(){
/**
* 根据域名访问以下路由
* http://www.kimen.com/public/write/laravelacademy
*/
Route::get('/write/laravelacademy',function($service){
return "Write FROM {$service}.kimen.com";
});
/**
* 根据域名访问以下路由
* http://www.kimen.com/public/update/laravelacademy
*/
Route::get('/update/laravelacademy',function($service){
return "Update FROM {$service}.kimen.com";
});
});