【问题标题】:Several foreach loop in one blade一个刀片中的多个 foreach 循环
【发布时间】:2019-11-15 10:53:17
【问题描述】:

对于 DB 中的每个表,我有四个带 CRUD 的刀片。

在 homeblade 中,我需要一个表格,我可以从每个表格中放置一列,并将其填充到列中,而不是连续填充。

这是我在刀片中的代码:

<div class="container">
        <table>
                <tr>
                    <th>Companies</th>
                    <th>Devices</th>
                    <th>Vehicles</th>
                    <th>Drivers</th>
                </tr>

                     @foreach($companies as $company)
                    <tr>
                    <td>{{$company->name}}</td>
                    @endforeach

                    @foreach($devices as $device)
                    <td>{{$device->type}}</td>
                    @endforeach

                    @foreach($vehicles as $vehicle)
                    <td>{{$vehicle->license_plate}}</td>
                    @endforeach

                    @foreach($drivers as $driver)
                    <td>{{$driver->name}}</td>
                    @endforeach
                    </tr>
        </table>
    </div>

我需要桌子这样看 Picture of table that I need

我为 foreach 循环和表尝试了几种不同的变体,但我没有更多的想法。

【问题讨论】:

    标签: php laravel foreach


    【解决方案1】:

    一个foreach就可以搞定

    @foreach($companies as $key => $company)
        <tr>
            <td>{{$company->name}}</td>
            <td>{{$devices[$key]->type}}</td>
            <td>{{$vehicles[$key]->license_plate}}</td>
            <td>{{$drivers[$key]->name}}</td>
        </tr>
    @endforeach
    

    【讨论】:

    • 可能是!empty()isset() 支票。
    • 我得到了错误:未定义的偏移量
    【解决方案2】:

    只能通过在新控制器中制作数组来完成。

    class WelcomeController extends Controller {
    public function index(Request $request) {
    
        $items = [];
        foreach (Companies::all() as $comp) $items[]['company']=$comp;
        foreach (Device::all() as $index => $dev){
            if($items[$index]) $items[$index]['device']=$dev;
            else $items[]['device']=$dev;
        }
    
        foreach (Vehicle::all() as $index => $veh){
            if($items[$index]) $items[$index]['vehicle']=$veh;
            else $items[]['vehicle']=$veh;
        }
    
        foreach (Driver::all() as $index => $dr){
            if($items[$index]) $items[$index]['driver']=$dr;
            else $items[]['driver']=$dr;
        }
    
    
    
        return view('/welcome', ['items'=>$items]);
    }
    

    在刀片的表格正文中,我写了这个:

    <tbody>
    
                    @foreach($items as $company)
                    <tr>
                        <td>{{isset($company['company'])?$company['company']->name:''}}</td>
                        <td>{{isset($company['device'])?$company['device']->type:''}}</td>
                        <td>{{isset($company['vehicle'])?$company['vehicle']->type:''}}</td>
                        <td>{{isset($company['driver'])?$company['driver']->name:''}}</td>
    
                    </tr>
                    @endforeach
    
                </tbody>
    

    【讨论】:

      猜你喜欢
      • 2019-05-14
      • 1970-01-01
      • 2018-04-04
      • 2016-06-02
      • 2017-11-13
      • 1970-01-01
      • 2016-06-29
      • 1970-01-01
      • 2017-05-29
      相关资源
      最近更新 更多