laravel分发job的时候报错

图片描述

图片描述

图片描述

小白一名,想用测试下队列的使用,遇见这样的问题

图2:JOBs类里面的构造函数的参数如果写了__constract(User $user);这样的依赖注入就会告诉我我在;图1:UserController类的sendEmail方法里传的参数不是App\jobs\User实例化而来的,就报错图3,如果写成__constract($user)就正常运行,但是手册和文档里写的都是__constract(User $user);为什么我这么写会报错呢?

阅读 2.4k
1 个回答

这个php中是类型限制
你的代码中指定的

function __construct(User $user){
    // 这里的User 没有指定命名空间
}

默认的命名空间是 App\Jobs, 获取到的对象是App\Jobs\User
你想要获取到的是 App\User 这个模型数据

给定的数据和限制的数据类型/对象 不符合, 就抛出异常了.

如果没有给定限制, 也就不存在校验, 也就不会出错.

解决办法:

类型一致, 具体解决办法自己想想..我就不说的太详细了.

知其然, 知其所以然

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题