PHP Laravel 框架学习笔记(一) 路由器 中间件 基础使用


用了近两年Thinkphp,尝试接触下Laravel框架,在写这篇文章的时候,其实我已经陆续学习了laravel一个多月,学习期间写了个简单的新闻管理系统,基本熟悉laravel的使用,写这篇文章是回顾并加深所学的知识,并更深入的了解框架,使用更多更有意思的函数。如果你希望改变自我,那么跟我一起努力吧。


路由器的使用

路由器听起来听起来挺高大上的,与Tp一次性配置pathinfo 模式后,按固定模式访问程序不同,laravel的路由器更加灵活,有各种使用方式,你可以传参,可以使用中间件,可以组个团统一用一个规则处理数据,你需要自己设置好每个路由的规则,下面来说说怎么使用路由

基础使用:

Route::get('/hello/laravel/{id}',['as'=>'route',function($id){
    return 'Hello laravel'.$id.'!';
}]);

上面这段代码,我们访问 http://localhost/hello/laravel/1 的时候,页面会输出 Hello Laravel 1.

第一个参数是从网站根目录往后的项目路径,id用花括号包起来,代表这是一个可传递的参数。
第二个参数中,首先为路由规则设置了一个route的别名,接着是传递了 id 参数的回调函数。
最后在回调函数中 return 输出Hello Laravel $id. 到页面中。

Rote::get 支持 get,post,match,any 等方式,any代表接受任何请求,match是一个集合,如果单独用get 那么用post 去访问将会报错,这一点上laravel能帮你很好的限制请求来源类型。


中间件的使用

中间件顾名思义就是架构在中间的那一层可复用程序,你可以像教程里一样写一个十八禁的中间件规则,下面着重了解下,刚接触没看清楚以为要设置什么,后来拿案例运行下就清楚了,建议你们也是先跑一下代码再去研究怎么实现的,这样做你会恍然大悟的。

1,创建一个中间件

#在 /app/Http/Middleware 目录下生成一个TestMiddleware.php 的中间件
php artisan make:middleware TestMiddleware  

#编辑TestMiddleware类的内容
public function handle($request, Closure $next)
{
    if($request->input('age')<18)             //限制年龄小18岁的不能访问
        return redirect()->route('refuse');
    return $next($request);
}

2,注册一个中间件

创建完之后,我们要到 /app/Http/Kernal.php 中注册这个中间件,给他起个名字叫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,
];

3,开始使用中间件

Route::group(['middleware'=>'test'],function(){
    Route::get('/write/laravelacademy',function(){
        //忽略这里
    });
    Route::get('/update/laravelacademy',function(){
       //忽略这里
    });
});

Route::get('/age/refuse',['as'=>'refuse',function(){
    return "十八禁!";
}]);

上面这段代码,我们访问 http://localhost//update/laravelacademy/1 的时候,页面会输出“ 十八禁!” 这时候已经自动跳转到 http://localhost/age/refuse 路由器上了。

注意上面用的是group 组路由,就是把多个路由做成一个集合,共用一点规则, group 里第一个参数是一个数组(php新版的写法方括号),里面给这个组绑定了一个 middleware 叫 test ,这个test 就是我们刚刚生成的中间件啦,这时候,中间件已经应用到 这个路由组里了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值