Laravel Pagination с красноречивыми запросами

Я пытаюсь разбить на страницы свой шаблон, на котором есть таблица.

Это моя функция в контроллере с красноречивыми запросами.

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

Но тонкие не работают. Где я ошибаюсь?

заранее спасибо


person Jay Desai    schedule 06.11.2014    source источник


Ответы (1)


Если вы хотите использовать нумерацию страниц вместо метода 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() }}

Обязательно загляните также в документацию по разбивке на страницы.

person Marcin Nabiałek    schedule 06.11.2014
comment
можете ли вы показать на мой красноречивый вопрос, как мы должны это сделать? - person Jay Desai; 06.11.2014
comment
@CoolD Посмотрите на это: stackoverflow.com/questions/26383071/laravel-sortby-paginate - person Marcin Nabiałek; 06.11.2014
comment
привет @Marcin. Я разместил еще один вопрос на SO. Вы можете взглянуть на это? - person Jay Desai; 06.11.2014
comment
stackoverflow.com/questions/26777898/ - person Jay Desai; 06.11.2014
comment
Привет, @marcin, я разместил вопрос по ссылке выше. - person Jay Desai; 06.11.2014