zoukankan      html  css  js  c++  java
  • laravel使用过程总结

    docker-compose exec -T workspace php artisan route:list  //查看路由

    laravel数据存入session,会出现Session store not set on request.错误。将session放到global middleware中,需要laravel的文件 ./app/Http/Kernel.php中的加上一句:

    IlluminateSessionMiddlewareStartSession::class,

    再写设置session方法:

    public function setSession(Request $request) {
       if ($request->session()->exists('site')) {
          return 'exist site session';
       }
       else{
          $request->session()->put('site', 'LaravelAcademy.org');
          return 'save site session';
       }
    }

    获得session方法:

    public function getSession(Request $request) {
       if ($request->session()->exists('site')) {
          return  $request->session()->get('site');
       }
       else{
          echo "no site session";
          return null;
       }
    }



    自定义auth
    https://learnku.com/articles/3825/laravel-authentication-principle-and-full-custom-authentication




    ++++++++++++++

    Laravel 三种中间件作用讲解

    昨天在开发过程中,需要使用到中间件的技术,之前都只是简单的认为要增加中间件就往middleware里添加中间件即可。本着周末的时间,就仔细研究了下 $middleware $middlewareGroup $routeMiddleware三个属性,到底是怎么样用的,通过查阅文档和网上资料,可算是搞明白了这三个属性是怎么用的和该怎么用。

    $middleware属性:

    这个属性称为全局中间件,为什么说是全局中间件呢?因为你的每一次请求,这里面的每个中间件都会执行。

    $routeMiddleware属性:

    这个属性称为路由中间件,为什么说是路由中间件呢?因为定义在该属性内的中间件,只能在定义路由时候引用。
    假设这是我们定义的路由中间件:

    protected $routeMiddleware = [
        ...
        'auth' => IlluminateAuthMiddlewareAuthenticate::class,
    ];

    如果我们要使用IlluminateAuthMiddlewareAuthenticate::class这个中间件该怎么做呢?
    Route::get('hello/laravel-china','XXController@index')->middleware('auth');
    我们定义路由时候调用了middleware方法,参数值是auth, 这样访问这个路由的时候,就会执行该中间件。明白了吧!很简单的。

    $middlewareGroups属性:

    这个属性称为中间件组,为什么说是中间件组呢?我们之前说了路由中间件,是不是感觉这样添加路由中间件很麻烦,比如我们执行10个中间件,是不是就要在定义路由时候添加10个呢?有了中间件组就不用这么麻烦了。我们来看下中间件组是怎么定义的。

    protected $middlewareGroups = [
        'web' => [
            AppHttpMiddlewareEncryptCookies::class,
            ...
        ],
        'api' => [
            ...
        ],
    ];

    好了,上面的例子就是定义中间件组的格式,比如我们看 web这个键值,它对应为一个数组,该数组有多个中间件组成。当我们定义好后,该怎么使用呢?
    我们在声明路由的时候,这样调用就可以了。

    Route::group(['middleware' => 'web'],function($route){
        $route->get('hello/world',function(){});
        $route->get('hello/php',function(){});
        // 这样在访问这个这些路由的时候,就会执行中间件组 web 所对应的中间件,方便多了,批量式的。
    });

    总结:

    $middleware:全局中间件,要对所有的请求要做一些处理的时候,就适合定义在该属性内。(比如统计请求次数这些)
    $middlewareGroups:中间件组,比如我们项目有api请求和web的请求的时候,就要把两种类型的请求中间件分离开来,这时候就需要我们中间件组啦。
    $routeMiddleware:路由中间件,有些个别的请求,我们需要执行特别的中间件时,就适合定义在这属性里面。

    Laravel 表单验证可用规则

     https://blog.yzgod.com/laravel-form-validation-rules-manual
  • 相关阅读:
    HDU 1874 畅通工程续(dijkstra)
    HDU 2112 HDU Today (map函数,dijkstra最短路径)
    HDU 2680 Choose the best route(dijkstra)
    HDU 2066 一个人的旅行(最短路径,dijkstra)
    关于测评机,编译器,我有些话想说
    测评机的优化问题 时间控制
    CF Round410 D. Mike and distribution
    数字三角形2 (取模)
    CF Round410 C. Mike and gcd problem
    CF Round 423 D. High Load 星图(最优最简构建)
  • 原文地址:https://www.cnblogs.com/agang-php/p/10419145.html
Copyright © 2011-2022 走看看