Не могу разбить на страницы с контроллера Laravel - PullRequest
0 голосов
/ 10 января 2019

Я пользуюсь Laravel всего несколько дней, так что это вопрос новичка. Я много чего пробую, но не могу разбить свои результаты на страницы ...

Я пробовал

$productos = Producto::paginate(8);

вместо

 $productos = Producto::get();

и я получил первые 8 результатов, но я не могу использовать метод ссылок для разбивки на страницы, получая

'Ссылки на метод не существуют'

ошибка

public function totalProductos() {

       $productos = Producto::get();
       $productos = $productos->sortByDesc(function ($productos){
       return $productos->detalles->sum('cantidad');

       });  

        return view('admin.usuarios.rankingproductos')->with(compact('productos'));

}

Используя этот код, я получил все результаты, но мне нужно несколько страниц, чтобы их упорядочить. Вы можете мне помочь? Спасибо

Ответы [ 3 ]

0 голосов
/ 10 января 2019

Обновить ответ

public function totalProductos() {

   $productos = Producto::paginate(8)->sortByDesc(function ($productos){
   return $productos->detalles->sum('cantidad');

   });  

    return view('admin.usuarios.rankingproductos', compact(['productos']));

 }

«Ссылки метода не существуют»

Метод links отображает ссылки на остальные страницы в наборе результатов. Каждая из этих ссылок уже содержит правильную page строковую переменную запроса.

Итак, после того, как вы получили результаты, вы можете отобразить результаты и отобразить ссылки на страницы в файле blade

<div class="container">
    @foreach ($productos as $product)
        {{ $product->name }}
    @endforeach
</div>

{{ $productos->links() }}
0 голосов
/ 10 января 2019

Функция контроллера:

public function totalProductos() {

       $productos = Producto::paginate(8)->sortByDesc(function ($productos){
       return $productos->detalles->sum('cantidad');

       });  

        return view('admin.usuarios.rankingproductos')->with(compact('productos'));

     }

вы должны написать эту строку {!! $productos->render() !!} в блейд-файле:

<div class="row">
    <div class="col-xs-12">
         {!! $productos->render() !!}
    </div>
</div>
0 голосов
/ 10 января 2019

Вы должны попробовать это:

public function totalProductos() {

   $productos = Producto::paginate(8);
   $productos = $productos->sortByDesc(function ($productos){
   return $productos->detalles->sum('cantidad');

   });  

    return view('admin.usuarios.rankingproductos')->with(compact('productos'));

 }

Ваш файл просмотра, например:

<div class="pull-left">
        <div class="row">
          <div class="col-xs-12">
            <div class="explore-pagination">
              <nav>
                <div class="pagination"> {{ $productos->render() }}</div>
              </nav>
            </div>
          </div>
        </div>   
      </div>

Обновленный ответ

public function totalProductos() {

   $productos = Producto::sortByDesc(function ($productos){
   return $productos->detalles->sum('cantidad');

   })->paginate(8);;  

    return view('admin.usuarios.rankingproductos')->with(compact('productos'));

 }

<div class="pull-left">
            <div class="row">
              <div class="col-xs-12">
                <div class="explore-pagination">
                  <nav>
                    <div class="pagination"> {{ $productos->links() }}</div>
                  </nav>
                </div>
              </div>
            </div>   
          </div>
...