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
  • 相关阅读:
    B轮公司技术问题列表(转)
    mysql函数之截取字符串
    谁才是真正的水果之王
    Mysql几种索引方式的区别及适用情况 (转)
    web安全之攻击
    css学习之样式层级和权重
    mysql中engine=innodb和engine=myisam的区别(转)
    mysql 创建表格 AUTO_INCREMENT
    mysql数据表的字段操作
    navicate使用小技巧
  • 原文地址:https://www.cnblogs.com/agang-php/p/10419145.html
Copyright © 2011-2022 走看看