例如我有以下代码:
public function index()
{
return
Model::select(['id', 'some_field', ...// more some fields])
->with('data') // load relation
->paginate(20);
}
如何格式化(转换/操作)从数据库中获取的数据?
CakePHP ORM有用的方法 - https://book.cakephp.org/3.0/en/orm/query-builder.html#adding-calculated-fields &安培;&安培; https://book.cakephp.org/3.0/en/orm/retrieving-data-and-resultsets.html#map-reduce
但是我找不到任何东西,这可以帮助我在Laravel做同样的事情。 我可以在模型中覆盖“toArray”方法,但这会影响所有应用程序部分(不仅是我控制器中的索引操作)。
答案 0 :(得分:3)
您可以在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;
});
答案 1 :(得分:1)
paginate()
和get()
将返回Collection
,以便您访问所有Collection
methods。
你可以这样做:
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;
});
}