首页 > 解决方案 > 添加嵌套循环后,laravel id 值发生了变化

问题描述

我使用以下代码来显示用户的角色,但是,当我想编辑或删除它时,它会将我带到已删除的 ids 编号 2/3,即使我foreach Attempt to read property "id" on null (View: C:\laravel\gauto\resources\views\dashboard\user\edit.blade.php)! 在删除嵌套时更改了 for else,它也会返回相同的内容foreach让一切恢复正常提前谢谢你

                            @forelse($users as $item)
                                <tr>
                                    <td>{{ $loop->iteration }}</td>
                                    <td>{{ $item->name }}</td>
                                    <td>{{ $item->email }}</td>
                                    <td>
                                        @if($item->email_verified_at)
                                            {{ "verified" }}
                                        @else
                                            {{ "not verified" }}
                                        @endif
                                    </td>
                                    <td>    
                                        @foreach($item->roles as $item)
                                            {{ $item['name'] }} 
                                        @endforeach
                                    </td>
                                    <td>
                                        <a href="{{ route('user.edit', $item->id) }}">Edit</a>
                                        <form action="{{ route('user.destroy', $item->id) }}" method="POST">
                                            @csrf
                                            @method('delete')
                                            <button onclick="return confirm('Are you sure ??')" type="submit">Delete</button>
                                        </form>
                                    </td>
                                </tr>
                                @empty
                                <tr>
                                    blank data
                                </tr>
                            @endforelse

标签: phpforeacheloquentlaravel-8nested-loops

解决方案


您的用户也保存在 $item 中,并且在循环中您每次都为 $item 分配不同的值。

尝试将代码更改为

<td>    
      @foreach($item->roles as $role)
           {{ $role['name'] }} 
      @endforeach
</td>

推荐阅读