laravel-路由篇-01
文章基本上参考文档所写,用来记录自己的学习过程,如果文章有错,以文档为准,当然希望大神看见给些意见,关于路由该怎么才能用的更溜,本菜鸟在此奉上膝盖。
laravel文档路由篇
1.首先最基础的路由
Route::get('/',function(){
return 'hello world';
});
代码解释:
以get
方式跳转到/
(本地通常为localhost/) 然后调用function,输出‘hello world’
Route::post('/',function(){
return 'hello world';
});
以post
方式,其他和get
相同
通常情况下我们不会简单的返回一个function()
,通常情况还会有如下操作
2.路由绑定控制器
绑定控制器的作用:实现mvc模式的开发
Route::get('user', ‘userController@index()’);
代码解释:
同理跳转user
然后调用Controller
文件夹下的userController
类中的index
方法
3.路由使用参数
使用参数的目的:
很多时候跳转的时候带参数会带来很多方便,如下
Route::get('user/{name}','userController@index()');
代码解释:
同理此处跳转user/{name}
,而{name}
的值来自于get
得到的参数,比如查看谋个用户时通过user/{name}
来获取用户比user/xxxx
这种方式来的更为方便
4.路由使用默认参数
当然我们有时候需要设置默认值,可以通过以下方式来设置
Route::get('user/{name?}', function($name = null){
return $name;
});
5.路由使用正则表达式限定参数
限定参数的作用:具体待续
Route::get('user/{name}', function($name){
//
})->where('name', '[A-Za-z]+');
Route::get('user/{id}', function($id){
//
})->where('id', '[0-9]+');
代码解释:
同理此处的{name}
也是一个参数,二后面的where('','')
则是限定条件
6.录用使用数组来限定多个参数
Route::get('user/{id}/{name}', function($id, $name){
//
})->where(array('id' => '[0-9]+', 'name' => '[a-z]+'))
此处也同上容易理解
此处看不懂可以忽略,因为本人页不是很确定这样说对不对
之所一可以直接调用Controller
,是因为composer.json
已经加载Controller
,以后遇到类似直接调用的可以去查看composer.json
7.定义全局模式
如果希望在全局范围用指定正则表达式限定路由参数,可以使用 pattern 方法:
Route::pattern('id', '[0-9]+');
Route::get('user/{id}', function($id){
// Only called if {id} is numeric.
});
8.访问路由参数
Route::filter('foo', function(){
if (Route::input('id') == 1){
echo "hello";
}
});
代码解释:此处‘foo’
过滤器将会访问调用此过滤器
的参数id
如果id==1
则输出"hello";
定义过滤器
Route::filter('old', function(){
if (Input::get('age') < 200){
return Redirect::to('home');
}});
代码解释:过滤器名字为old
,执行function()
,如果得到的age<200
那么重定位到home
为路由绑定使用过滤器
过滤器的作用:限制对应用程序中某些功能访问,比如对于需要验证才能访问的功能就非常有用
Route::get('admin/home',
['as'=>'admin.home','before'=>'adminFilter',function(){
echo "hello world"
}])
代码解释:此处跳转admin\home
,其中'as'=>'admin.home'
是别名。然后在跳转之前会先运行名为adminFilter
的过滤器,如果过滤器没有阻止该路由则运行function
,否则就不会运行function()
,过滤器定义在filters.php
文件中,位于routes.php
下面。