如何实例化你在Laravel Jobs中的构造函数中传递的变量

问题描述 投票:1回答:3

我创建了一个受保护的$ companyID;在我的Job类然后在__construct函数中我通过了$id但是当我尝试在我的handler function中实例化变量时它的null

protected $companyID = NULL;

public function __construct($ID) {
    $this->companyID = $ID;
}

然后在实例化课程时?

    $ProcessOutgoingSMS = new ProcessOutgoingSMS();
    $ProcessOutgoingSMS->dispatch(3);
php oop laravel-5 laravel-5.5 laravel-jobs
3个回答
0
投票

您没有将任何参数传递给构造函数,也许这是您的问题的根源。

$ProcessOutgoingSMS = new ProcessOutgoingSMS(2);

作为更一般的代码样式注释,我还建议不要使用带有大写第一个字符的变量。 $id$processOutgoingSMS


0
投票

你应该将3传递给构造函数:

$ProcessOutgoingSMS = new ProcessOutgoingSMS(3);
$ProcessOutgoingSMS->dispatch();

并不是

$ProcessOutgoingSMS = new ProcessOutgoingSMS();
$ProcessOutgoingSMS->dispatch(3);

0
投票

我实例化该类并尝试执行注入控制台/ kernel.php

$idobject = (object)['id' => 3];
new ProcessOutgoingSMS($idobject);

然后在尝试执行功能的类中使var成为静态var

static $companyID = 0;

现在构造函数看起来像

public function __construct($company) {
    self::$companyID = $company->id;
}

然后在handle()函数中,我可以访问注入的任何值

dd(self::$companyID);

多谢你们

© www.soinside.com 2019 - 2024. All rights reserved.