【问题标题】:Invalid argument supplied for foreach() in LaravelLaravel 中为 foreach() 提供的参数无效
【发布时间】:2015-06-29 22:13:26
【问题描述】:

我在这里有双 foreach。这是我的看法

<table border="1">
    <tr>
            <th>ID</th>
            <th>ISBN</th>
            <th>Klasifikasi</th>
            <th>Lokasi</th>
            <th>Cp_Or</th>
            <th>Tahun</th>
            <th>ID_Master_Buku</th  
            <th>Jenis</th>
            <th>Status</th>
            <th>Tgl_Masuk</th>
            <th>can_issue</th>
            <th>ID</th>
            <th>Edisi</th>
            <th>Pengarang</th>
            <th>Deskripsi</th>
            <th>Penerbit</th>
            <th>Judul</th>
            <th>Jumlah_Buku</th>
            <th>Bahasa</th>
            <th>Gambar</th>
            <th>Subjek</th>
            <th>Topik</th>
    </tr>


    @foreach($bukus as $buku)
    @foreach($buku->tmbuku as $item)
    <tr>
            <td>{{$buku->ID}}</td>      
            <td>{{$buku->ISBN}}</td>
            <td>{{$buku->Klasifikasi}}</td>
            <td>{{$buku->Lokasi}}</td>
            <td>{{$buku->Cp_Or}}</td>
            <td>{{$buku->Tahun}}</td>
            <td>{{$buku->ID_Master_Buku}}</td>
            <td>{{$buku->Jenis}}</td>
            <td>{{$buku->Status}}</td>
            <td>{{$buku->Tgl_Masuk}}</td>
            <td>{{$buku->can_issue}}</td>
            <td>{{$item->ID}}</td>
            <td>{{$item->Edisi}}</td>
            <td>{{$item->Pengarang}}</td>       
            <td>{{$item->Deskripsi}}</td>
            <td>{{$item->Penerbit}}</td>
            <td>{{$item->Judul}}</td>
            <td>{{$item->Jumlah_Buku}}</td>
            <td>{{$item->Bahasa}}</td>
            <td>{{$item->Gambar}}</td>      
            <td>{{$item->Subjek}}</td>
            <td>{{$item->Topik}}</td>
            @endforeach
    </tr>
    @endforeach </table>

它适用于我的其他观点。但是在这里,我得到了一个错误

为 foreach() 提供的参数无效

你能帮帮我吗?提前致谢

【问题讨论】:

  • 请在第一次 foreach 之后添加 dd($buku) 的输出。
  • 这是我的第一个模型
  • 我想你不明白我所说的。将代码更改为此以查看输出:@foreach($bukus as $buku) {{ dd($buku) }} @foreach($buku->tmbuku as $item) 并将其粘贴到您的问题中。
  • 检查你是否从控制器传递了正确名称的数据
  • @motto,对不起,拼错了。我知道你的意思,但我认为我有一个新错误,我更新了我的问题,标题为“Laravel 中为 foreach() 提供的参数无效并进行更改”

标签: laravel foreach


【解决方案1】:

听起来很像至少一个$buku-&gt;tmbukunull...

尝试将其包装在@if

@foreach($bukus as $buku)
    @if($tmbuku = $buku->tmbuku
        @foreach($tmbuku as $item)
        <tr>
        <td>{{$buku->ID}}</td>      
        <td>{{$buku->ISBN}}</td>
        <td>{{$buku->Klasifikasi}}</td>
        <td>{{$buku->Lokasi}}</td>
        <td>{{$buku->Cp_Or}}</td>
        <td>{{$buku->Tahun}}</td>
        <td>{{$buku->ID_Master_Buku}}</td>
        <td>{{$buku->Jenis}}</td>
        <td>{{$buku->Status}}</td>
        <td>{{$buku->Tgl_Masuk}}</td>
        <td>{{$buku->can_issue}}</td>
        <td>{{$item->ID}}</td>
        <td>{{$item->Edisi}}</td>
        <td>{{$item->Pengarang}}</td>       
        <td>{{$item->Deskripsi}}</td>
        <td>{{$item->Penerbit}}</td>
        <td>{{$item->Judul}}</td>
        <td>{{$item->Jumlah_Buku}}</td>
        <td>{{$item->Bahasa}}</td>
        <td>{{$item->Gambar}}</td>      
        <td>{{$item->Subjek}}</td>
        <td>{{$item->Topik}}</td>
        </tr>
        @endforeach
    @endif
@endforeach

【讨论】:

    【解决方案2】:

    在执行第二个循环之前尝试检查其 null 和项​​目是否计数,例如:

    @foreach($bukus as $buku)
    @if(!is_null( $buku->tmbuku ) && count( $buku->tmbuku ) )
        @foreach($buku->tmbuku as $item)
        <tr>
           <td>{{$buku->ID}}</td>      
           <td>{{$buku->ISBN}}</td>
           <td>{{$buku->Klasifikasi}}</td>....
           <td>{{$item->ID}}</td>
           <td>{{$item->Edisi}}</td>
           <td>{{$item->Pengarang}}</td>       
           <td>{{$item->Deskripsi}}</td>...
        </tr>
        @endforeach
    @endif
    

    @endforeach

    【讨论】:

      猜你喜欢
      • 2018-12-09
      • 1970-01-01
      • 2017-02-15
      • 2017-05-03
      • 1970-01-01
      • 1970-01-01
      • 2022-01-27
      • 2018-02-26
      • 2017-11-26
      相关资源
      最近更新 更多