【问题标题】:How can i do Laravel pagination for multiple table results?如何为多个表格结果进行 Laravel 分页?
【发布时间】:2017-01-07 22:44:00
【问题描述】:

在 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 ++;
            }

请给我建议。

谢谢:)

【问题讨论】:

  • 请展示你如何构建一个数组,展示查询。
  • 感谢您的回复。添加了查询@AlexeyMezenin

标签: php mysql laravel pagination


【解决方案1】:

这里有两个选择:

  1. Create a paginator manually

这个tutorial 应该可以帮到你。

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

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

【讨论】:

  • 您能否概述一下如何进行第二个选项? .谢谢
  • 没有简单的方法。你应该从了解Eloquent relationships开始,首先建立模型之间的关系。
猜你喜欢
  • 2011-03-24
  • 1970-01-01
  • 2019-06-15
  • 2019-06-24
  • 1970-01-01
  • 2021-12-04
  • 1970-01-01
  • 1970-01-01
  • 2020-07-19
相关资源
最近更新 更多