1

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

protected $companyID = NULL;

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

那么在实例化类的时候呢?

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

3 回答 3

0

我在哪里实例化类并尝试执行注入 console/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);

多谢你们

于 2017-12-19T00:06:31.510 回答
0

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

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

并不是

$ProcessOutgoingSMS = new ProcessOutgoingSMS();
$ProcessOutgoingSMS->dispatch(3);
于 2017-12-18T11:54:24.677 回答
0

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

$ProcessOutgoingSMS = new ProcessOutgoingSMS(2);

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

于 2017-12-18T11:54:09.863 回答