Php 如何格式化(转换)laravel数据库分页结果?

Php 如何格式化(转换)laravel数据库分页结果?,php,laravel,eloquent,Php,Laravel,Eloquent,例如,我有以下代码: public function index() { return Model::select(['id', 'some_field', ...// more some fields]) ->with('data') // load relation ->paginate(20); } 如何格式化(转换/操作)从数据库获得的数据 CakePHP ORM对此有很有用的方法- && 但我找不到任

例如,我有以下代码:

public function index()
{
    return
        Model::select(['id', 'some_field', ...// more some fields])
            ->with('data') // load relation
            ->paginate(20);
}
如何格式化(转换/操作)从数据库获得的数据

CakePHP ORM对此有很有用的方法- &&

但我找不到任何东西,可以帮助我在拉威尔做同样的事情。 我可以重写模型中的“toArray”方法,但这将影响所有应用程序部分(不仅仅是控制器中的索引操作)。

paginate()
get()
将返回一个允许您访问所有

您将能够做到:

public function index()
{
    return
        Model::select(['id', 'some_field', ...// more some fields])
            ->with('data') // load relation
            ->paginate(20)
            ->map(function($model) {
                $model->total_things = $model->one_thing + $model->other_thing;
                return $model;
            });
}

您可以在
Laravel
中执行相同的操作,例如:

return Model::select(['id', 'some_field', ...// more some fields])
->with('data')
->paginate(20)
->map(function($item, $key) {
    // Some pseudo code
    $item->uid = uniqid();

    // Must return the $item
    return $item;
});

还有其他方法做类似的事情。在这方面你可以做得更多。在许多方法中,也有一种方法。

您可以对返回的集合使用
map
。对我不起作用。当我使用map时,它作为集合而不是分页资源返回