【发布时间】:2021-04-08 07:41:03
【问题描述】:
我从数据库中检索了一个 laravel 集合,我想根据三个计算在该数据库上更新某些值。但在我进行计算之前,我首先检查所有相关的集合项是否不为空。我可以检查它们是否为空,但由于某种原因无法检索具有控制器功能范围的错误变量来告诉用户尚未设置变量。
$error_arr = [];
$calculation = FertilApp::calculation($product, $farm, $agent);
$calculation->each(function ($item, $key) {
if ($item->ha === null) {
$error_arr[] = 'Prices has been updated';
$error_arr[] = 'But no calculation has been done, please update following block:' . $item->block;
return false;
}
});
变量$error_arr 返回一个空数组,即使我知道ha 键是null。
另一种方法是使用普通的foreach() 循环。我已经尝试过了,它有效,但我真的很想知道为什么这不起作用。
有人可以帮我解释一下为什么这个集合each() 方法拒绝我的变量访问来自集合方法之外的值吗?
编辑:如果我尝试将变量作为参数传递,则会收到以下错误消息 Cannot use a scalar value as an array。
Laravel 版本:5.6.39
【问题讨论】:
标签: php eloquent scope laravel-5.6 laravel-collection