2016-05-30 104 views
0

如何获取laravel 5.2中的job id
关于this link我试过getJobId(),但不起作用。laravel:在搜索后获取作业ID

ofcourse当我得到一个日志使用dd() thers是一个id但可能它的protected.so我无法访问它。

#job: {#459 +"id": 233 +"queue": "offers" +"payload": "{"job":"Illuminate\\Queue\\[email protected]","data":....}" +"attempts": 50 +"reserved": 0 +"reserved_at": null +"available_at": 1464615540 +"created_at": 1464615540 }

+0

似乎是没有办法,除了发送公关laravel。[点击这里](https://github.com/laravel/framework/pull/13781) – alex

回答

0
public function handle() 
{ 
    $jobid=$this->job->getJobId(); 
} 

您可以通过这种方法

+0

当你释放工作,一个新的工作记录将被创建,并且作为发布不会返回任何东西不可能获得访问ID – alex

5

落榜ID在L5.3,你可以得到作业ID作业类中这样

<?php 

namespace App\Jobs; 

use App\Models\User; 
use Illuminate\Bus\Queueable; 
use Illuminate\Queue\SerializesModels; 
use Illuminate\Queue\InteractsWithQueue; 
use Illuminate\Contracts\Queue\ShouldQueue; 

class ParseUniversityData implements ShouldQueue 
{ 
    use InteractsWithQueue, Queueable, SerializesModels; 

    protected $user; 

    /** 
    * Create a new job instance. 
    * 
    * @param $userId 
    */ 
    public function __construct(User $user) 
    { 
     $this->user = $user; 
    } 
    /** 
    * Execute the job. 
    * 
    * @throws \Exception 
    * @return void 
    */ 
    public function handle() 
    { 
     $jobId = $this->job->getJobId(); // this how you can get job id 
    } 
} 

你派遣你的工作的方法(在这个例子中,我正在使用行动方法在我的控制器OD)

public function someExampleAction(Request $request) 
    { 
     $requestData = $request->all(); 

     $job = (new someExampleJob(
      $requestData['property'], $user 
     )); 

     $jobId = dispatch($job); // this is variable job id 
    } 
+0

嗨,我不能得到Laravel 5.5中的id,因为这项工作现在受到保护,你可以让我们知道我们可以如何在laravel 5.5控制器中获取ID。 – usama