Laravel分页与雄辩的查询

时间:2014-11-06 06:43:15

标签: laravel-4 eloquent blade laravel-paginate

我正在尝试对我的模板进行分页,该模板上有一个表格。

这是我在控制器中的功能,它具有雄辩的查询功能。

public function orderbydate()
    {

        $order =DB::table('sales_flat_order_items as s')
                ->leftJoin('sales_flat_orders as w', 'w.entity_id','=','s.order_id')
                ->select(array(DB::Raw('sum(s.amount_refunded) as amount_refunded'),
                    DB::Raw('sum(s.row_total) as row_total'),
                    DB::Raw('sum(s.discount_amount) as discount_amount'),
                    DB::Raw('sum(s.tax_amount) as tax_amount'),
                    DB::Raw('sum(s.qty_ordered) as qty_ordered'),
                    DB::Raw('sum(w.subtotal) as subtotal'), 
                    DB::Raw('sum(w.total_invoiced) as total_invoiced'), 
                    DB::Raw('sum(w.shipping_amount) as shipping_amount')))
                ->where('qty_canceled','=','0')
                ->where('status','!=','canceled')
                ->get();

        $orderbydate = DB::table('sales_flat_order_items as s')
                ->leftJoin('sales_flat_orders as w', 'w.entity_id','=','s.order_id')
                ->select(array(DB::Raw('sum(s.amount_refunded) as amount_refunded'),
                    DB::Raw('sum(s.row_total) as row_total'),
                    DB::Raw('sum(s.discount_amount) as discount_amount'),
                    DB::Raw('sum(s.tax_amount) as tax_amount'),  
                    DB::Raw('sum(s.qty_ordered) as qty_ordered'),
                    DB::Raw('sum(w.subtotal) as subtotal'),
                    DB::Raw('DATE(w.created_at) days'), 
                    DB::Raw('sum(w.total_invoiced) as total_invoiced'),
                    DB::Raw('sum(w.shipping_amount) as shipping_amount')))
                ->where('qty_canceled','=','0')
                ->where('status','!=','canceled')
                ->groupBy('days')
                ->orderBy('s.created_at')
                ->get();

            return View::make('sales_flat_orders.orderbydate', compact('order','orderbydate'), ['orderbydate'=>Paginate(3)]);
    }

我想在我的模板中使用分页。所以我这样做。

    @foreach(array_chunk($orderbydate->getCollection()->all(), 3) as $row)
      <div class = "row">
          @foreach($row as $s)
          <article class = "col-md-4">
     <tbody>
      <tr class="odd gradeX">
         <td>{{date("d F, Y",strtotime($s->days))}}</td>
         <td>{{ round($s->qty_ordered, 2) }}</td>
         <td>{{round($s->subtotal,2)}}</td>
         <td>{{round($s->tax_amount,2)}}</td>
         <td>{{round($s->discount_amount,2)}}</td>
         <td>{{round($s->row_total,2)}}</td>
         <td>{{round($s->amount_refunded,2)}}</td>
         <td>{{round($s->total_invoiced,2)}}</td>
         <td>{{round($s->shipping_amount,2)}}</td>
      </tr>
    </article>
     @endforeach
    @endforeach

但是这些不起作用。我哪里错了?

提前致谢

1 个答案:

答案 0 :(得分:4)

如果您想使用分页而不是get方法,则需要使用paginate方法。

例如,工作分页应该像这样工作:

Paginator::setCurrentPage($page);
Paginator::setBaseUrl($baseUrl);
Paginator::setPageName('page');
$users = User::paginate(15);

现在在Blade模板中,您可以在foreach循环中显示用户并添加分页链接:

@foreach ($users as $user)
  {{{ $user->name }}}
@endforeach

{{ $users->links() }}

你一定要看Pagination documentation