无法从Laravel控制器分页

时间:2019-01-10 06:31:19

标签: laravel paginate

我已经使用Laravel几天了,所以这是一个新手问题。我正在尝试很多事情,但无法对结果进行分页...

我尝试过

$productos = Producto::paginate(8);

代替

 $productos = Producto::get();

我得到了前8个结果,但是我无法使用links方法进行分页,得到

  

“方法链接不存在”

错误

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 :(得分:1)

您应该尝试以下操作:

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>

答案 1 :(得分:1)

更新答案

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() }}

答案 2 :(得分:1)

控制器功能是:

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>