Laravel队列/作业发送请求数据

时间:2018-02-12 12:39:59

标签: php laravel-5

我正在使用laravel 5.4 我有一个问题,无法将其谷歌。

控制器

<?php
namespace App\Http\Controllers\TasksDownload;

use App\Http\Controllers\Controller;
use Illuminate\View\View; 
use Illuminate\Http\Request;
use App\Jobs\RequestTasksJob;

class HomeController extends Controller
{
    public function requestTasks(Request $request)
    {
        dispatch(new \App\Jobs\RequestTasksJob([1,2]))
    }
}

应用\作业\ RequestTasksJob

<?php

namespace App\Jobs;

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

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

    public $tasks;

    public function __construct(array $tasks)
    {
        $this-> tasks = $tasks;
    }

    public function handle()
    {
    }
}

我收到了错误:

  

类App \ Jobs \ RequestTasksJob中无法解析的依赖项解析[参数#0 [$ tasks]]

有人有解决方案吗?我是laravel的新人。

2 个答案:

答案 0 :(得分:0)

您需要添加data type $tasks的内容,因为如果您不提供,Laravel可以map将其添加到相应的课程中,因此它会失败解决它需要映射到的类。

答案 1 :(得分:0)

显然,Job构造函数中不允许使用原始参数类型(至少在新的Laravel版本中)。所以使用setter来传递params;)