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

时间:2017-12-18 11:41:26

标签: php oop laravel-5 laravel-5.5 laravel-jobs

我创建了一个受保护的$ companyID;在我的Job类中,然后在__construct函数中我传递了$id,但是当我尝试在我的handler function null

中实例化变量时
protected $companyID = NULL;

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

然后在实例化类时?

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

3 个答案:

答案 0 :(得分:0)

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

$id

作为更多通用代码样式注释,我还建议不要使用大写第一个字符的变量。 $processOutgoingSMSjava.lang.IllegalArgumentException:

答案 1 :(得分:0)

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

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

而不是

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

答案 2 :(得分: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);

谢谢你们