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

Dmi*_* K. 3 php laravel eloquent

例如我有以下代码:

public function index()
{
    return
        Model::select(['id', 'some_field', ...// more some fields])
            ->with('data') // load relation
            ->paginate(20);
}
Run Code Online (Sandbox Code Playgroud)

如何格式化(转换/操作)从数据库获取的数据?

CakePHP ORM对此有有用的方法 - https://book.cakephp.org/3.0/en/orm/query-builder.html#adding-calculated-fields && https://book.cakephp.org/3.0/en/ orm/retriving-data-and-resultsets.html#map-reduce

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

The*_*pha 5

您可以在 中做同样的事情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;
});
Run Code Online (Sandbox Code Playgroud)

还有其他方法可以做类似的事情。您可以在Laravel中做更多事情。在众多方法中,还有一种转换方法。

  • 不适合我。当我使用地图时,它作为集合而不是分页资源返回 (4认同)