繁体   English   中英

如何为多个表格结果进行 Laravel 分页?

[英]How can i do Laravel pagination for multiple table results?

在 Laravel 中,我有多个来自控制器的表结果可供查看。 我需要为这组结果做分页。 我怎样才能做到这一点?

我从不同的表中得到了很多结果

return View::make('view')->with('data_array', $data_array)->with('count', $count)->with('paginate', $paginate);

data_array具有来自多个表的数组结果。

$employee_detail = EmployeeDetail::Select('employee_id', 'unique_type_id', 'unique_number')->get()->toArray();
        $paginate = EmployeeDetail::paginate(5);        
        $count = EmployeeDetail::Select('employee_id', 'unique_type_id', 'unique_number')->count();

        $data_array = array();
        $i = 0;
        foreach ($employee_detail as $employeeKey => $employeeValue) {
            $kiosk_id = $employeeValue['employee_id'];
            $data_array[$i]['kiosk_id'] = $kiosk_id;
            $package_id = $employeeValue['unique_type_id'];
            $unique_number = $employeeValue['unique_number'];
            $data_array[$i]['unique_number'] = $unique_number;
            $carrier_details = CarrierDetails::Select('package_name', 'carrier_type_id')->where('id', '=', $package_id)
                ->get()
                ->toArray();
            foreach ($carrier_details as $packageDetailskey => $packageDetailsvalue) {
                $package_name = $packageDetailsvalue['package_name'];
                $data_array[$i]['package_name'] = $package_name;
                $carrier_type = $packageDetailsvalue['carrier_type_id'];
                $carrier_details = CarrierType::Select('carrier_name')->where('id', '=', $carrier_type)->get();
                foreach ($carrier_details as $carrierDetailsKey => $carrierDetailsValue) {
                    $carrier_name = $carrierDetailsValue['carrier_name'];
                }
                $data_array[$i]['carrier_name'] = $carrier_name;
                $i ++;
            }

请给我建议。

谢谢 :)

您在这里有两个选择:

  1. 手动创建分页器

教程应该对您有所帮助。

  1. 重写您的代码以使用 Eloquent 关系并使用with()load() 在这种情况下,您将能够使用paginate()方法。

如果我是你,我会选择第二个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM