gpt4 book ai didi

工作中的 Laravel 未定义属性

转载 作者:行者123 更新时间:2023-12-04 13:58:32 25 4
gpt4 key购买 nike

在 Laravel 工作中,我有:

use Spatie\Valuestore\Valuestore;


public function __construct()
{
$this->settings = Valuestore::make(storage_path('app/settings.json'));
}


public function handle()
{
if($this->settings->get('foo') == 'test') {
etc...

在此我收到错误 Undefined property App\Jobs\MyJobName::$settings .出了什么问题?

即使我这样做:
 public function handle()
{
$this->settings = Valuestore::make(storage_path('app/settings.json'));
if($this->settings->get('foo') == 'test') {
etc...

我犯了同样的错误。

根据评论更新
MyJobName在自定义工匠命令中调用,恰好也使用 Valuestore但我认为这无关紧要。

在类(class) CustomCommand :
use Spatie\Valuestore\Valuestore;


public function __construct()
{
parent::__construct();
$this->settings = Valuestore::make(storage_path('app/settings.json'));
}


public function handle()
{
if($this->settings->get('foo') == 'test') // This works in this custom command!
{
$controller = new MyController;
MyJobName::dispatch($controller);
}
}

所以在 CustomCommand我用 ValuestoreMyJobName 中的方式完全相同但在后者中它不起作用。
根据其中一条评论:我不做 $this->settings全局,因为我在 CustomCommand 中不这样做或者它在那里工作正常。

更新 2

如果我添加 protected $settings;上方 __construct()根据评论的功能它仍然不起作用,同样的错误。

最佳答案

只需在您的作业类中将 settings 属性声明为 public 即可。

public $settings;
public function __construct()
{
$this->settings = Valuestore::make(storage_path('app/settings.json'));
}

关于工作中的 Laravel 未定义属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56637115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com