Laravel 5.8如何获得工作编号? - php

我正在尝试在我的工作中获取工作ID。我尝试$this->job->getJobId(),但是它返回一个空字符串。

<?php

namespace App\Jobs\Notifications;

use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Support\Facades\Auth;

class SendNotification implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    public function __construct($notification, $fireShutdown)
    {
        $this->notification = $notification;
        $this->fireShutdown = $fireShutdown;
    }

    public function handle()
    {
        dd($this->job->getJobId());

       // Some Code
    }
}

参考方案

以下内容将使您获得工作编号。尝试复制以下代码,并通过简单的路线进行分发。

class TestJob implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        echo $this->job->getJobId();
    }
}

并通过以下途径对其进行测试。

Route::get('/trigger', function () {
    dd(dispatch(new \App\Jobs\TestJob()));
});

在终端中,您现在应该看到以下内容以及给定作业的ID。

Laravel 5.8如何获得工作编号? - php

如果您的队列侦听器未运行,则可以通过在终端中键入以下内容来启动它

php artisan queue:work redis --tries=3

如果您尝试将ID返回到控制器/路由,则由于异步/排队的性质,您不能使用异步/排队的作业来执行此操作。

Laravel 5错误报告抑制 - php

在Laravel 4中,抑制E_NOTICE消息很容易;我似乎无法做到这一点,因为如果我添加error_reporting(E_ALL ^ E_NOTICE) 它只是被覆盖的任何地方。这似乎发生在这里:(index.php)$response = $kernel->handle( $request = Illuminate\Http\Request::…

检查对象是否已在集合中-Laravel - php

当我循环一系列不同的结果时,我希望将对象添加到新集合中。查询:$osRed = Item::where('category', 'Hardware') ->where(function ($query) { $query->where('operating_system', '…

PHP Laravel从另一个驱动器读取文件 - php

我目前正在学习Laravel。我想知道是否有一种方法可以在Laravel中使用Storage::从另一个硬盘访问文件(使用Windows)。例如,我在驱动器C:上安装了带有Laravel的Xampp,但是我想访问网站目录之外的E:上的文件。我试过使用Storage::files('E:')和File::files('E:…

Laravel打印日志 - php

我正在尝试在控制台上打印日志:我输入了:use Log; 然后在控制器中使用 Log::info('test log'); 但它不打印任何日志。 参考方案 我认为您需要在运行后检查storage/logs/laravel.logLog::info('test log'); 希望这对您有帮助

laravel Hash::make继续给出不同的结果 - php

我想在laravel 4中使用身份验证我改了桌子和莫贝尔的名字当用户注册时,我拥有密码并将其保存,哈希为:$password = Hash::make(Input::get('password')); 然后当用户登录时,我想先对他/她进行身份验证。我这样做是这样的:if (Auth::attempt(array('usernam…