是否有一种简单的方法可以在JSON响应中返回具有不同属性名称的更多对象?
例如,我有User
模型,其中包含name, password, xy
属性,如果我return User::all();
,我将返回所有用户。但是如果我想返回一个自定义对象列表,我将返回JSON格式,如下所示:
{
'username' : ...
'pass': ...
'xyz' : ...
'from_related_model' : ...
}
所以我将以不同的方式返回字段的名称,然后它们在DB中,并且还将来自相关模型的属性附加到每个返回的对象。
我不想使用mutators,因为我只想在一个控制器中返回。我知道我可以通过foreach遍历对象并通过赋值和创建一个新对象,并返回合并对象。但有更简单的方法吗?
答案 0 :(得分:1)
您需要生成要手动返回的对象列表。
示例:如果您想为从数据库中提取的每个用户返回自定义对象,您可以在控制器中执行以下操作:
$result = [];
foreach (User::all() as $user) {
$result[] = [
'username' => $user->username,
'full_name' => $user->first_name . ' ' . $user->last_name,
'xyz' => 5,
];
}
return $result;
每次从控制器方法返回数组或集合时,它都会自动转换为JSON。