Laravel-5.8 ::为foreach()提供的参数无效

时间:2019-07-27 18:13:33

标签: laravel eloquent laravel-5.8

嗨,我有多个数据库表(“经销商,供应商,历史记录”),并试图在经销商索引中显示与经销商相关的供应商数据(在经销商表中,supplier_id被用作外键),但显示错误:为foreach()提供了无效的参数,试图通过以下方式从经销商索引中获取历史数据:、、、、、、、、、、、、、、、、、、。供应商ID 、、、、、、、、、、、

请注意,只有经销商显示在索引上,而我正在使用资源路线

索引代码:

create or replace function Function_Name(--Parameter_List--)
return number as
BEGIN
    --Statements...
EXCEPTION
    WHEN exception_1 THEN return 1;
    WHEN exception_2 THEN return 2;
    WHEN exception_3 THEN return 3;
END;

控制器代码:

@foreach ($data as $row)
  <tr>
    <td>{{ $row->dealer_name }}</td>
    <td>
      @foreach($row->supplier as $sp)
        {{ $sp->supplier_name }}<br>
      @endforeach
    </td>
  </tr>
@endforeach

供应商型号:

$data = Dealer::all(); 

return view('dealer.index', compact('data'));

所有其他型号都仅受此https://laravel.com/docs/5.8/eloquent-relationships#has-one-through

保护

2 个答案:

答案 0 :(得分:0)

ng serve

答案 1 :(得分:0)

正如您提到的经销商正在显示,那么问题一定出在@foreach($row->supplier as $sp)

由于错误说为foreach()提供了无效的参数,您需要验证$row->supplier是数组。

@foreach ($data as $row)
    <tr>
        <td>{{ $row->dealer_name }}</td>
        <td>
            @if(is_array($row->supplier) && !empty($row->supplier))
                @foreach($row->supplier as $sp)
                {{ $sp->supplier_name }}<br>
                @endforeach
            @endif
        </td>
    </tr>
@endforeach