Laravel分页在一个视图中有多个@foreach

时间:2019-11-19 12:25:48

标签: php laravel pagination laravel-blade

这是刀片:

<div class="container">
        <table id="myTable" class="table table-bordered sortable">
            <thead>
                <tr>
                    <th onclick="sortTable(0)">Companies</th>
                    <th onclick="sortTable(1)">Devices</th>
                    <th onclick="sortTable(2)">Vehicles</th>
                    <th onclick="sortTable(3)">Drivers</th>
                </tr>
            </thead>

            <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>

        </table>
    </div>

这是控制器:

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]);
}

我需要在刀片中对该表进行分页。但是在这种情况下,我不知道在哪里放置命令。 我在“返回视图... $ items-> paginate”中写过,但是在那里出现错误。 有解决办法吗?

2 个答案:

答案 0 :(得分:0)

您可以从数组创建集合,并在集合上调用paginate:

$collection = collect([1, 2, 3])->paginate();

答案 1 :(得分:0)

这就是我所拥有的,转到您的控制器进行查看,然后在顶部使用:

 $locations = Locations::paginate(10);

希望这能回答一些问题。