php laravel foreach中动态增加循环元素

请问下,原生php可以在循环的时候动态根据条件增加额外循环项,代码如下:

$a = [1, 2, 3];
foreach($a as &$v){
    if($v == 2){
        $a[]  = 7;
    }
    echo $v;
}

最终输出的是1237,也就是额外多循环了一次;
但是在laravel中,循环的是LengthAwarePaginator分页的东东,虽然可以动态增加元素,但是实际上没有循环到这个元素。
图片描述

图片描述

实际页面渲染后第21个元素asd没有循环出来,请问有什么方法可以解决嘛?我想到的是获取LengthAwarePaginator的items元素,然后手工弄成个数组形式的,但里面的元素还是保持模型对象(不然关系没法用了),可是这个items是protected属性,没法直接获取。。

阅读 5.7k
2 个回答

可以了,先循环一遍。。
图片描述

在模版里可能不行。

循环的变量体是通过AbstractPaginator类内的迭代器生成的。也就是说在循环时变量体就已经是确定的,在循环里改变不了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题