如何实例化您在Laravel构造函数中传递的变量作业
我创建了受保护的$ companyID;在我的工作类,然后在__construct
功能我传递了一个$id
但是当我尝试实例变量在我handler function
其null
如何实例化您在Laravel构造函数中传递的变量作业
protected $companyID = NULL;
public function __construct($ID) {
$this->companyID = $ID;
}
然后实例化类的时候?
$ProcessOutgoingSMS = new ProcessOutgoingSMS();
$ProcessOutgoingSMS->dispatch(3);
您不会将任何参数传递给构造函数,也许这是问题的根源。
$ProcessOutgoingSMS = new ProcessOutgoingSMS(2);
随着越来越多的普通代码风格评论,我也建议您不要使用大写前几个字符变量。 $id
和$processOutgoingSMS
。
我得到AsTeR,但现在的问题是,因为我试图在控制台/ Kernel.php中注入值,因为我需要为不同的公司ID在不同的位置运行多个作业,现在需要注入这些ID以便在默认情况下我会拨打 php工匠队列:工作我所有的工作都可以运行。 – Fulela
你应该通过3到构造函数:
$ProcessOutgoingSMS = new ProcessOutgoingSMS(3);
$ProcessOutgoingSMS->dispatch();
,而不是
$ProcessOutgoingSMS = new ProcessOutgoingSMS();
$ProcessOutgoingSMS->dispatch(3);
感谢Marcin,但是将注入从实际课程转移到调度方法中,作为测试手段没有看到它已经留在那里,尝试过这种解决方案但无法获得 – Fulela
我在哪里实例化类,并尝试进行注射控制台/ kernel.php
$idobject = (object)['id' => 3];
new ProcessOutgoingSMS($idobject);
然后在正在尝试执行该功能的类中,var是一个静态变量var
static $companyID = 0;
现在的构造看起来像
public function __construct($company) {
self::$companyID = $company->id;
}
然后在手柄()函数,我可以访问任何价值注入
dd(self::$companyID);
谢谢你们
看看THI链接https://laracasts.com/discuss/channels/general-discussion/how-do-you-pass-constructor-parameters-when-youre-instantiating-an-interface-through-a-bind –