【问题标题】:Laravel issue Trying to get property 'id' of non-objectLaravel问题试图获取非对象的属性“id”
【发布时间】:2019-03-27 22:08:44
【问题描述】:

我在这里尝试使用 foreach 循环来循环供应商名称,但出现以下错误

<tbody style="font-size:small">

                    @foreach($material as $material)

                    <tr class="odd" role="row">

{!! Form::open(['route'=>'materialsupplier.store','class'=>'form-horizontal p-t-20']) !!}
                        <td>{{ $material->name }}<input type="hidden" value="{{ $material->id }}" name="mat_id"></td>
                        <td></td>
                        <td>
                            <div class="form-group{{ $errors->has('sup_id') ? ' has-error' : '' }}">

                                <div >
                                    <select class="form-control js-cities" name="sup_id">
                                        <option value="" selected disabled>Select Supplier</option>
                                        @foreach ($supplier as $supplier)
                                         <option value="{{ $supplier->id}}">{{$supplier->company_name}}</option>
                                        @endforeach
                                    </select>
                                </div>
                            </div>
                        </td>
                        <td>
 {{ Form::submit('Save',['class'=>'far fa-trash-alt btn btn-info btn-sm btn-rounded m-b-1 m-l-5']) }}
                           </td>  
                        {!! Form::close() !!}      
                    </tr>
                    @endforeach
                </tbody>

之后我像这样修改了我的代码

<select class="form-control js-cities" name="sup_id">
 <option value="" selected disabled>Select Supplier</option>
    @foreach ($supplier as $supplier)
     <option value="{{ $supplier}}">{{$supplier}}</option>
     @endforeach
  </select>

输出

控制器

public function index()
    {
       $material = Material::all();
       $supplier = Supplier::all();

   return view('materialMgmt.material_suppliyer.create')->withMaterial($material)->withSupplier($supplier);
    }

如何避免出现此错误?

【问题讨论】:

  • 首先,数组表达式和值同名!请更改它:@foreach($material as $material)@foreach ($supplier as $supplier)
  • 谢谢您,先生,您的建议对我帮助很大

标签: php laravel loops foreach laravel-blade


【解决方案1】:

我将代码更改如下,它的工作原理

<select class="form-control js-cities" name="sup_id">
      <option value="" selected disabled>Select Supplier</option>
             @foreach ($supplier as $sup)
             <option value="{{ $sup->id}}">{{$sup->company_name}}</option>
             @endforeach
 </select>

FatemehNB 先生,感谢您的建议。

【讨论】:

    猜你喜欢
    • 2018-06-27
    • 2021-05-26
    • 2020-06-26
    • 2018-07-03
    • 1970-01-01
    • 2020-10-23
    • 2020-10-21
    • 2020-05-04
    • 1970-01-01
    相关资源
    最近更新 更多