【发布时间】:2015-03-07 09:10:41
【问题描述】:
我有以下 Eloquent 查询:
$item = Item::where('sku', $sku)->first();
在这个查询进来后,我手动添加了各种元素,例如:
$item['total'] = $item['subtotal'] + $this->currentInventory();
上述修改对象的语句可以正常工作。
当我执行以下操作时它停止工作:
$item['fields'] = [];
$fields = DB::table('item_fields')->where('item_id', $item['id'])->get();
foreach ($fields as $f) {
if (!isset($item['fields'][$f->field_group_name]))
$item['fields'][$f->field_group_name] = [];
$item['fields'][$f->field_group_name]['valid_values'] = DB::table('item_field_valid_values')->where('item_field_id', $f->item_field_id);
}
这将导致$item['fields'][$f->field_group_name] = []; 行产生错误:
Indirect modification of overloaded element of Item has no effect
我怎么能分配$item['fields'] = [],但是当我尝试将实际元素添加到$item['fields'] 数组时,我得到了这个错误?
PHP 版本 5.6.0。
【问题讨论】: