在laravel 5.5中的此集合实例上不存在Property [id]

时间:2017-12-05 07:03:06

标签: php mysql laravel laravel-5.5

我正在使用'purchaseOrder'和'purchaseOrderDetails'数据库表。我将数据从一个表单保存到两个表。这是“purchaseOrderrDetails”项目的附加行表。插入数据工作正常。但是,现在我需要一次更新表'purchaseOrder'和'purchaseOrderDetails'。我正在尝试将所有'purchaseOrderDetails'数据添加到我的表单中,该表单正在使用附加行系统。而且,我正在接受这个错误。什么应该是正确的代码请有人帮助我。这是我的控制器方法和编辑视图 -

Purchase_OrderController.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>

edit.blade.php

{{1}}

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

purchaseOrderDetails

1 个答案:

答案 0 :(得分:3)

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

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

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

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

但是如果Collection只是一个数组周围的对象,那么你就是在做那件事:

$collection->id;

集合包含项目,您希望其中一个项目的“id”不是Collection本身,因为Collection没有名为“id”的属性。

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

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

etc ...