laravel-路由篇-01

753 查看

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下面。

目前自己用的比较多的就这些,关于路由组,路由与模型绑定,抛出 404 错误,路由前缀,后续会对照文档继续我的laravel之路