首页 > 解决方案 > 带有嵌套foreach的Laravel分页

问题描述

你好吗?

我有一个从模型返回数据的函数。获得所有数据后,我会使用它执行一个 foreach 循环,并为每个结果添加一些我自己的键/值。我得到了这个代码:

$pets = Pet::orderBy('created_at', 'desc')->get();

一旦我得到这些数据,我就会执行 foreach 循环:

foreach ($pets as $pet) {
        if ($pet->where('race', '=', 'dog')->exists()) {
                $pet->image = 'localhost:8000/races/dog.jpg';
        } else {
            $pet->image = 'localhost:8000/other/default.jpg';           
        }
    }

foreach 循环将键/值添加到集合中。

我需要的是能够使用嵌套的 foreach 结果对结果进行分页。

return $pets->paginate(3);

忘记数据库注意事项。这只是一个类似表的示例,但目标是相同的,将 foreach 中的键/值对添加到集合或数组中,以便我可以使用所有数据对其进行分页

我知道我可以在不使用 get 的情况下使用更改查询的模型进行分页,但我不会获得我需要的所有数据。

你能帮我吗?谢谢

标签: phplaravelpagination

解决方案


试试地图()

$pets = Pet::orderBy('created_at', 'desc')->paginate(3);

$pets->map(function ($row) {
    if (true) {
        $row['image'] = 'localhost:8000/races/dog.jpg';
    } else {
        $row['image'] = 'localhost:8000/other/default.jpg';
    }
    return $row;
});

return $pets;

推荐阅读