Laravel5.1 路由
Posted Alex_sun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel5.1 路由相关的知识,希望对你有一定的参考价值。
昨天写了一篇Laravel的路由笔记,Laravel的路由还有很多功能,我今天继续学一些路由的知识
重定向
我们可以使用redirect方法来实现重定向,我们来看一个简单的重定向:
Route::get(‘/user/{id}‘, function ($id){ if ($id <= 0){ return redirect(‘/‘); } else { return ‘hello‘; } });
当满足一些逻辑后,使用redirect跳转到别的视图。
路由命名
路由命名就是为路由起一个名字,这样我们在重定向时 可是使用路由的名字,就不用输入那些复杂的路径了。使用 as 关键字来为路由命名:
// 把第二个参数改成一个数组,里面指定一些键值配置,和一个闭包。 Route::get(‘/hello/laravel‘,[‘as‘ => ‘laravel‘,function(){ return ‘Hello Laravel‘; }]); // 生成一个测试重定向的路由 Route::get(‘/test/redirect‘,function (){ // 我们在跳转时,只需要在route方法中传入路由名就可以实现跳转。 return redirect()->route(‘laravel‘); });
在实际开发中 我们或许会在重定向时为路由传入参数,可以这么写:
路由分组
路由分组给我们带来了很多便利,当一些路由具有相同的属性时,我们可以使用路由分组将他们包含起来,路由的属性有:
- 中间件
- 路由前缀
- 子域名
- 命名空间
其中中间件和命名空间在之后的章节中做记录,我们先来看看路由前缀和子域名的使用。
子域名
子域名我们可以使用domain来声明:
// 定义一个路由分组,domain传进一个参数: Route::group([‘domain‘=>‘{service}.laravel.app‘], function (){ Route::get(‘/write/laravel‘, function ($service){ return "Write FROM {$service}.laravel.app"; }); Route::get(‘/update/laravel‘, function ($service){ return "Update FROM {$service}.laravel.app"; }); });
当我们在浏览器中访问:http://write.laravel.app:8000/write/laravel 时,则会输出:
Write FROM write.laravel.app
当我们访问:http://update.laravel.app:8000/update/laravel 时,输出:
Update FROM update.laravel.app
注意:我们要让子域名生效 需要在hosts文件中绑定IP地址。
路由前缀
我们使用prefix来指定路由前缀:
Route::group([‘prefix‘ => ‘laravel‘], function (){ Route::get(‘/write‘, function (){ return ‘Write laravel‘; }); Route::get(‘/update‘, function (){ return ‘Update laravel‘; }); });
这样的话我们只需要访问:localhost:8000/laravel/write 和 localhost:8000/laravel/update 即可。
有些时候 我们还可以指定带参数的prefix:
Route::group([‘prefix‘ => ‘laravel/{version}‘], function (){ Route::get(‘/write‘, function ($version){ return ‘Write laravel‘ . $version; }); Route::get(‘/update‘, function ($version){ return ‘Update laravel‘ . $version; }); });
以上是关于Laravel5.1 路由的主要内容,如果未能解决你的问题,请参考以下文章