如何在Laravel中对数组数组使用分页

时间:2019-10-31 15:40:24

标签: php laravel

我将以下数组添加到all_updates[]中,如下所示:

$all_updates[] = $all_update_in;
$all_updates[] = $all_update_out;
$all_updates[] = $all_update_oth;

$all_updates输出:

  

array(3){[0] => array(0){} [1] => array(0){} [2] => array(3){[0] => object(stdClass)# 365(21){[“ id”] => int(84)[“ created_at”] =>字符串(19)“ 2019-10-31 12:24:28” [“ updated_at”] =>字符串(19) “” 2019-10-31 12:24:28“ [” title“] => string(14)” the tag newest“ [” body“] => string(20)” thetag newest ANSWER“}}}

我正在尝试对最终数组进行分页,如下所示:

$Final_array= $all_updates->paginate(15);

我收到以下错误:

  

在非对象上调用成员函数paginate()

3 个答案:

答案 0 :(得分:1)

您无法对数组进行分页。您对存储在数组中而不是数组本身的查询输出进行分页。

这意味着您的3个嵌套数组在插入父数组之前应该已经被分页。

之后,您可以在它们周围循环,并获得links字段。这是您的分页信息。

答案 1 :(得分:1)

首先,您要使用collect($arr)

将数组转换为集合

然后在以下线程上检查hakob93答案以继续前进: https://laracasts.com/discuss/channels/laravel/how-to-paginate-laravel-collection?page=1#reply=363252

答案 2 :(得分:1)

paginate()函数是查询生成器,这就是为什么您不能在这里使用它。

但是您可以使用take()和slice()。

喜欢

$skipRow=0;

$data=[
  [
    'id'=>1,
    'name'=>'suresh'
  ]
  [
    'id'=>2,
    'name'=>'mahesh'
  ]
];

$collectedData=collect($data);

$rowData=$collectedData->slice($skipRow)->take(15);