【问题标题】:Is it possible to do pagination in laravel with groupBy in blade view?是否可以在刀片视图中使用 groupBy 在 laravel 中进行分页?
【发布时间】:2019-09-10 22:14:00
【问题描述】:

我正在获取视图中多个部分的记录。为了显示完整的数据,我只是在做 $data = Data::all();

然后根据需要简单地获取每个部分的计数。 例如:

{{count($data->where('status', 'HOLD'))}}

对于同一视图的另一部分,我想用 Groupy 显示结果 例如:

@foreach($data->paginate()->groupBy('user_id') as $byUser)
@endforeach

然后显示分页 {{$data->links()}}

我已经尝试在控制器中分离结果并使用不同的方法调用数据。

$data = Data::all();
$userData = Data:paginate(5)->groupBy('user_id');
return view('data.all', compact('data', 'userData'));

这在没有分页的情况下运行良好。添加分页后,我遇到了错误。

Method Illuminate\Database\Eloquent\Collection::paginate does not exist. (View: C:\xampp\htdocs\project\resources\views\data\all.blade.php)

有什么办法可以解决吗?谢谢。

【问题讨论】:

    标签: php laravel-5 eloquent


    【解决方案1】:

    检查这一行:

    $data = Data::all();
    

    这里您已经在执行查询,这意味着返回了一个Collection 实例。这就是为什么不能使用paginate() 方法的原因,因为那是QueryBuilder 方法。

    试试这个:

    $userData = Data::groupBy('user_id')->paginate(5);
    
    return view('data.all', compact('data', 'userData'));
    

    【讨论】:

      猜你喜欢
      • 2013-06-09
      • 1970-01-01
      • 1970-01-01
      • 2019-06-04
      • 2015-01-20
      • 2020-03-14
      • 2021-09-23
      • 1970-01-01
      • 2012-01-13
      相关资源
      最近更新 更多