我正在尝试让队列在laravel 5中工作并且队列侦听器正在输出:
[ErrorException]未定义的索引:表
存在“jobs”和“failed_jobs”表,config.php设置为“database” .
搜索laravel论坛和google还没有找到解决方案,amy想法在哪里看?
这很可能不是Laravel Queue系统的错误 . 相反,当未知/未设置元素访问数组时,PHP会抛出此错误 .
PHP: "Notice: Undefined variable", "Notice: Undefined index", and "Notice: Undefined offset"
例如:
// Initialise an empty array $myArray = []; // Attempt to access an element that hasn't been set yet echo $myArray['breadCake'];
在您的情况下,查看您的代码,处理排队和搜索['table'],[“table”]或任何需要“表”设置的内容 .
阅读本文并考虑使用Laravel Queues记住以下几点可能会很方便:
队列是异步的,除非您将它们传递到队列中,否则无法访问您在应用程序中设置的变量 .
在Laravel 5中,捕获Event __construct()方法中存在的作业所需的所有数据 . 事件可以访问名为SerializesModels的特征 . 您可以将模型作为实例(带有属性)传递给__construct()方法(例如__construct(User $ user)) . 将变量分配给Event类范围(例如:$ this-> user = $ user) . 传递给EventListener句柄(Event $ event)方法 . 这在队列处理时被调用.__construct()应该是空白的(或者用存储库/服务/其他方便的部分填充) .
您可以访问传递给句柄的对象(Event $ event)方法:
public function handle(MyEvent $myEvent) { $this->user = $myEvent->user; $mailData = ['user'=>$this->user]; Mail::queue('viewdir.view',$mailData, function($message) use ($mailData) { $message->to($mailData['user']->email); // other stuff }); }
我希望这有助于任何人阅读 .
1 回答
这很可能不是Laravel Queue系统的错误 . 相反,当未知/未设置元素访问数组时,PHP会抛出此错误 .
PHP: "Notice: Undefined variable", "Notice: Undefined index", and "Notice: Undefined offset"
例如:
在您的情况下,查看您的代码,处理排队和搜索['table'],[“table”]或任何需要“表”设置的内容 .
阅读本文并考虑使用Laravel Queues记住以下几点可能会很方便:
队列是异步的,除非您将它们传递到队列中,否则无法访问您在应用程序中设置的变量 .
在Laravel 5中,捕获Event __construct()方法中存在的作业所需的所有数据 . 事件可以访问名为SerializesModels的特征 . 您可以将模型作为实例(带有属性)传递给__construct()方法(例如__construct(User $ user)) . 将变量分配给Event类范围(例如:$ this-> user = $ user) . 传递给EventListener句柄(Event $ event)方法 . 这在队列处理时被调用.__construct()应该是空白的(或者用存储库/服务/其他方便的部分填充) .
您可以访问传递给句柄的对象(Event $ event)方法:
我希望这有助于任何人阅读 .