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时,它作为集合而不是分页资源返回