拉拉维尔 - 有效负载无效



我正在使用命令来执行一个事件以将一些数据存储到数据库中。但是在执行命令时,我收到一个错误:

Illuminate\Contracts\Encryption\DecryptException :有效负载无效。

在控制器中执行此事件时,一切正常。当我使用array_push时,问题似乎出在侦听器中:

array_push($reports, $event->type);

$reports是一个现有数组,我将向该数组再添加一个report_type,然后将其保存到数据库中:

$event->budget->update(['reported' => $reports]);

此外,reported字段是一个数组字段,如我的模型中声明的那样:

protected $casts = [
'reported' => 'array'
];

我的问题是,为什么它在从控制器执行该事件时有效,而在使用命令时不起作用?当然,对此进行修复是受欢迎的,但我的主要问题是,我正在尝试理解错误。

如果需要更多信息,我将相应地添加它。

在命令中,我执行以下操作:

foreach (reports() as $report) {
$budgets->each(function ($budget) use ($report) {
return event(new BudgetReported($budget, $report));
});
}

我的活动:

class BudgetReported {
use SerializesModels;
public $budget;
public $type;
/**
* Create a new event instance.
*
* BudgetReport constructor.
* @param Budget $budget
* @param $type
*/
public function __construct(Budget $budget, $type)
{
$this->budget = $budget;
$this->type = $type;
}
}

在我的听众中:

public function handle(BudgetReported $event)
{
$reports = $event->budget->reported;
$reports == null ? $reports = [] : $reports;
array_push($reports, $event->type);
$event->budget->update(['reported' => $reports]);
}

希望对您有所帮助!

发现问题,是我在模型中加载

的特征

相关内容

  • 没有找到相关文章

最新更新