gpt4 book ai didi

php - 在 laravel 5.5 中,此集合实例上不存在属性 [id]

转载 作者:行者123 更新时间:2023-11-29 01:26:16 26 4
gpt4 key购买 nike

我正在处理 purchaseOrderpurchaseOrderDetails 数据库表。

我正在将数据从一种形式保存到两个表中。这是 purchaseOrderrDetails 项目的附加行表。插入数据工作正常。

但是,现在我需要一次更新表 purchaseOrderpurchaseOrderDetails

我正在尝试将所有 purchaseOrderDetails 数据添加到使用附加行系统的表单中。而且,我收到此错误:

Property [id] does not exist on this collection instance

正确的代码应该是什么,请有人帮助我?下面是我的 Controller 方法和编辑 View -

Purchase_OrderController.php

   //purchase order update form
public function update($id){
$suppliers = Supplier::all();
$categories = Category::all();

$purchaseorder_id = $id;
$purchaseorder= Purchase_Order::where('id', '=', $purchaseorder_id)->get();

$purchaseorder_details_id = Purchase_Order_Details::pluck('purchase_order_id');
$purchaseorder_details = Purchase_Order_Details::where('purchase_order_id', '=', $id)->get();
//$purchaseorder_details = Purchase_Order_Details::with('purchaseorder')->get();


//dd($purchaseorder_details);

return view('user/purchaseorder.edit')->with(['purchaseorder' => $purchaseorder, 'purchaseorder_details' => $purchaseorder_details, 'suppliers' => $suppliers, 'categories' => $categories]);
}

编辑.blade.php

<tbody>
<?php $item_row = 0; ?>
@foreach($purchaseorder_details as $pur_detail)
<tr id="item-row-{{ $item_row }}">
<td class="text-center" style="vertical-align: middle;">
<button type="button" onclick="$(\'#item-row-' + item_row + '\').remove();" title="Delete" class="btn btn-xs btn-danger"><i class="fa fa-trash"></i></button>
</td>
<td>
<input value="{{ $pur_detail->code }}" class="form-control typeahead" required="required" placeholder="Item Code" name="item[{{ $item_row }}][code]" type="text" id="item-name-{{ $item_row }}">
</td>
<td>
<input value="{{ $pur_detail->item_name }}" class="form-control" required="required" name="item[{{ $item_row }}][item_name]" type="text" id="item-name-{{ $item_row }}">
</td>
<td>
<select class="form-control" required="required" name="item[{{ $item_row }}][category]" id="item-category-{{ $item_row }}">
<option selected="selected" value="">Select Category</option>
@foreach($categories as $category)
<option value="{{ $category->id }}">{{ $category->name }}</option>
@endforeach
</select>
</td>
<td>
<input value="{{ $pur_detail->quantity }}" class="form-control text-right" required="required" name="item[{{ $item_row }}][quantity]" type="text" id="item-quantity-{{ $item_row }}">
</td>
<td>
<input value="{{ $pur_detail->uom }}" class="form-control text-right" required="required" name="item[{{ $item_row }}][uom]" type="text" id="item-uom-{{ $item_row }}">
</td>
</tr>
@endforeach
<?php $item_row++; ?>
<tr id="addItem">
<td class="text-center"><button type="button" onclick="addItem();" title="Add" class="btn btn-xs btn-primary" data-original-title="Add"><i class="fa fa-plus"></i></button></td>
<td class="text-right" colspan="5"></td>
</tr>
</tbody>

第一个是 - purchaseOrder,第二个是 purchaseOrderDetails purchaseOrder

purchaseOrderDetails

最佳答案

Collection 是一个围绕数组的奇特对象包装器,仅此而已。集合不是它包含的东西,这是你犯的错误。

$array = [
['id' => 1, 'name' => 'bob'],
['id' => 2, 'name' => 'tom'],
...
];

你不会这样做,因为你知道你想要的索引不在数组中,而是在数组中:

$array['id'];
// but you would do this:
$array[0]['id'];

但是对于只是数组周围对象的 Collection,您正在做的正是这件事:

$collection->id;

集合包含项目,您需要这些项目之一的“id”而不是集合本身,因为集合没有名为“id”的属性。

$collection->first()->id;   // id from the first object

foreach ($collection as $item) {
$item->id;
}

etc ...

关于php - 在 laravel 5.5 中,此集合实例上不存在属性 [id],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47647877/

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