Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 事件和作业未从Laravel事件侦听器内部触发_Php_Laravel_Laravel 5_Event Listener - Fatal编程技术网

Php 事件和作业未从Laravel事件侦听器内部触发

Php 事件和作业未从Laravel事件侦听器内部触发,php,laravel,laravel-5,event-listener,Php,Laravel,Laravel 5,Event Listener,我有一个事件监听器,它从数据库中的记录创建并保存一个pdf文件 此过程正确完成,然后我记录结果并希望触发作业或其他事件,但两者都不会运行 如果我从一个控制器运行,它们的执行都是完美的 句柄方法如下所示: /** * Handle the event. * * @param SaveRecordPdf $event * @return void */ public function handle(SaveRecordPdf $event) { $record = $event

我有一个事件监听器,它从数据库中的记录创建并保存一个pdf文件

此过程正确完成,然后我记录结果并希望触发作业或其他事件,但两者都不会运行

如果我从一个控制器运行,它们的执行都是完美的

句柄方法如下所示:

/**
 * Handle the event.
 *
 * @param  SaveRecordPdf  $event
 * @return void
 */
public function handle(SaveRecordPdf $event)
{
    $record = $event->record;

    if ($this->service->publish($record)) {
        Log::info($record->published_filename . ' was stored successfully.');

        // fire publish job
        PublishFile::dispatch($record);

    }
}

发生这种情况的原因是否已知?

请尝试在存储库中运行以下命令:


composer dumpautoload&&php artisan clear compiled

事件仅在单个php进程执行的上下文中工作。如果你发射了一个,但过程结束了,就没有什么可以处理了。也许可以考虑实现ShouldQueue?它实现ShouldQueue。但是
queue:work
似乎并没有拾取处理程序中发出的事件。如果我运行
queue:listen
,它会正确地拾取并激发它们。