最近发表的评论
  • Auth::login (); 在其他控制器获取不到用户信息? at 1周前

    @else 你这次说的原因或许才对。但是我还是有个疑问,为什么在同一个路有中 dump(Auth::user()) 会没有 set-cookie?即使不打印,直接 Auth::user() 应该也是一样的效果吧?我没有测试。还有,我发现 session()->put(key,value) 的用法也有这个情况,你如果在一个路由中 put 赋值,会发现用户对应的 session 文件是没有这组键值对的,如果在一个路由中赋值后,再去请求,才会有这组键值对,而且也写入了文件

  • Auth::login (); 在其他控制器获取不到用户信息? at 1周前

    @else 我觉得你说的不对.你可以在登录后刷新 sesionid Session::regenerate(); 并不会影响用户的登录。我也不知道你说的这种情况是为什么,但是我发现 session()->getId() 这个值其实是不会变得。他对应的就就是当前用户的 session 文件

  • 选择优惠券下单,出现系统错误? at 1周前

    @kuang couponCode Code是大写,你命名看到了那个函数报错,直接进入 Order 的模型中看看关联的函数不就知道了

  • 请问在 service 层,如何直接返回 return response? at 1周前

    @halweg 可以在 Service 中定义错误方法,然后在 Controller 里面获取错误内容

      /**
         * 错误代码
         * @var int
         */
        protected $errorCode;
    
        /**
         * 错误信息
         * @var string
         */
        protected $errorMessage = '';
    
        /**
         * 返回错误代码
         * @return int
         */
        public function getErrorCode()
        {
            return $this->errorCode;
        }
    
        /**
         * 返回错误信息
         * @return string
         */
        public function getErrorMessage()
        {
            return $this->errorMessage;
        }
  • 关于队列使用场景的困惑 at 1周前

    @leo 可能这个问题在你这个章节里并不适合,因为你此处确实是需要队列。而我的困惑是类似于上面我说的那个问题。我知道队列的应该是发送邮件。我想表达的是,像发邮件这种耗时的操作确实适合使用队列,但在实际场景中,很多不是耗时的操作,比如直接触发某个数据库的修改 也会直接使用队列,我觉得就不合适了。很多人使用队列可能是为了速度更快,可是这样并不会更快,使用者可能并不知道这样。今天又问了朋友,他说队列只是让数据更合法,并不会变得更快
    对了,其实我并没有做发送邮件。队列里面直接是做了数据修改

      public function handle()
        {
            $this->user->update(['email_verified'=>1]);
        }

    我只是随便举例而已,就是表明直接修改数据库的操作,为什么需要放入队列中

  • 用 $this->newQuery () 就可以创建一个查询构造器? at 1周前

    @ross 你追踪的没问题,可是你理解错了。你要知道 $this->newQuery() 是在 Illuminate\Database\Eloquent\Model 类中,其中的 $this 代表的是你当前使用的 ModelnewQuery() 方法写明了返回的是 @return \Illuminate\Database\Eloquent\Builder。而函数内部的返回 return $this->registerGlobalScopes($this->newQueryWithoutScopes()); 其实是在找有没有注册全局作用域。追踪代码最终是要找到返回的那个值怎么来的。你的第二个图 public function registerGlobalScopes($builder) 返回的是 $builder,也就是传递的参数。你应该找 newQuery() 里面的参数 $this->newQueryWithoutScopes() 才对

     /**
         * Get a new query builder for the model's table.
         *
         * @return \Illuminate\Database\Eloquent\Builder
         */
        public function newQuery()
        {
            return $this->registerGlobalScopes($this->newQueryWithoutScopes());
        }
    
       /**
         * Get a new query builder that doesn't have any global scopes.
         *
         * @return \Illuminate\Database\Eloquent\Builder|static
         */
        public function newQueryWithoutScopes()
        {
            return $this->newModelQuery()
                        ->with($this->with)
                        ->withCount($this->withCount);
        }
    
       /**
         * Get a new query builder that doesn't have any global scopes or eager loading.
         *
         * @return \Illuminate\Database\Eloquent\Builder|static
         */
        public function newModelQuery()
        {
            return $this->newEloquentBuilder(
                $this->newBaseQueryBuilder()
            )->setModel($this);
        }
    
    所以最终还是返回的当前 Model
  • 根据自己使用遇到的问题所做的补充? at 1个月前

    @赖皮小鳄鱼 明白了 谢谢

  • 根据自己使用遇到的问题所做的补充? at 1个月前

    @赖皮小鳄鱼 不清楚在哪里修改啊,英文不怎么好。你指点下呗 谢谢

  • 根据自己使用遇到的问题所做的补充? at 1个月前

    @赖皮小鳄鱼
    我使用默认的user表做测试,出现这样的一个报错,知道什么原因嘛?谢谢。还有这个是收费的吗

    file

  • 在控制器构造方法中为什么获取不到`\Auth::guard ('Admin')->user ()`的值? at 1个月前

    @jltxwesley 知道为什么在构造方法中找不到session

  • 如何对{{ $user->name }}的数据进行修改? at 1个月前

    上面说的挺清除,一个是使用修改器,另一个,你也可以在Model里面直接写一个函数

    public function getName()
    {
        return substr_replace($this->name, '****', 3, 4);
    }

    在模板中直接{{ $user->getName() }}即可

  • 直接在 Factory 中设计 user_id 的填充,我觉得更容易理解一些? at 1个月前

    你这样只是随机取值1,2,3,但是不合理啊。你怎么知道用户id就只有这三个呢,你应该从user表中pluck('user_id'),从这个结果中获取才对

  • Laravel 模型关联数据怎么获取第一条 at 1个月前

    with的本质就是使用whereIn() 语句预加载获取所有的关联数据,你如果只取一条数据,就没有必要使用他了

  • 邮件激活里的 Mail::send () 闭包函数的 message 哪里来的? at 1个月前
    • 1.你可以运行php artisan ide-helper:generate会生成一个 _ide_helper.php文件,可以追踪代码
      图1
    • 2.然后再追踪一部,就可以得到源码
      可以看到第三个参数,本质上是一个回调函数
      图2

    第三个参数

    function ($message) use ($from, $name, $to, $subject) {
                $message->from($from, $name)->to($to)->subject($subject);
            }
    • 3.而第三个参数又被call_user_func($callback, $message);调用。所以控制器中的$message其实就是call_user_func($callback, $message)中的$message

    • 然后在寻找$message变量的赋值位置$data['message'] = $message = $this->createMessage();,
      然后再追踪$this->createMessage()方法,可以看到$message本身就是一个new Message()实例
      所以Illuminate\Mail\Message这个类里面的方法,都是$message变量可以使用的

    file

  • PHP 多进程高并发下如何解决单例问题? at 1个月前

    PHP本身就是单进程,PHP-FPM是负责进程管理的。从代码上讲,每一次请求,都是一个进程,不会造成什么冲突。单利和静态本质上是一样的,都是针对一次请求的处理

  • Laravel 中如何利用『模型事件』来实现删除数据时的连带删除? at 1个月前

    $user 变量是怎么取值的呢?你这样是得不到值的啊

  • PHP 接口 at 2个月前

    public function driver(ICar $car)应该是public function driver(bmw $car)

  • Heroku 部署上线后,页面提示 403 没权限访问, 请问有遇到过的么? at 7个月前

    @nzero3 没有 我第一次按照教程写的时候是可以的 后来我又写了一遍,怎么写都不行了 不过我想,你可以吧Github源码上的那个文件复制粘贴到你的项目中,应该是可以的 可能就是这个文件的问题吧 你试试看

  • 站点配置有点小缺陷 at 7个月前

    @白衣落水 那么 怎么解决这个问题呢

  • 添加可以上传图片,修改点不动上传图片的图标 ?? at 7个月前

    @Ken 确实如此,但为什么会出现这种情况呢 同样是上传,新建却是没问题的啊