* Job Class * и Illuminate \ Bus \ Queueable определяют одно и то же свойство ($ connection) в составе * Job Class * - PullRequest
0 голосов
/ 28 мая 2019

Несмотря на то, что в документации указано иное , попытка задать имя соединения в классе Job может завершиться неудачей в Laravel с ошибкой:

[Job Class] and Illuminate\Bus\Queueable define the same property ($connection) in the composition of [Job Class]. However, the definition differs and is considered incompatible. Class was composed

1 Ответ

1 голос
/ 28 мая 2019

Я считаю, что это проблема совместимости между PHP 7.3 и Laravel 5.8.Ошибка возникает, потому что признак Queueable уже определил переменную класса 'connection'.

Чтобы исправить ошибку, нам просто нужно установить переменную, а не объявить ее.

Прерванный класс задания:

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

    public $connection = 'database';
    protected $product;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct(Product $product)
        $this->product = $product;
    }...

Фиксированный класс работы:

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

    protected $product;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct(Product $product)
    {
        $this->connection = 'database';
        $this->product = $product;
    }...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...