2014-11-06 2 views
2

Я пытаюсь разбивать страницы на свой шаблон, на котором есть таблица.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 

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

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

ответ

2

Если вы хотите использовать нумерацию страниц вместо get метода вы должны использовать paginate метод.

Например, работая с нумерацией страниц должен работать так:

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

сейчас в шаблоне Лезвия можно отобразить пользователей в foreach цикле и добавить ссылки разбивки на страницы:

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

{{ $users->links() }} 

Вы определенно должны выглядеть также на Pagination documentation

+0

Вы можете показать мой красноречивый запрос, как нам это нужно? –

+0

@CoolD Посмотрите на это: http://stackoverflow.com/questions/26383071/laravel-sortby-paginate –

+0

Спасибо @marcin за то, что вы показываете выход. :) –

Смежные вопросы