我想返回一个Eloquent模型的JSON,但我想更改数组键。默认情况下,它们被设置为表字段名称,但我想更改它们。
例如,如果我有一个包含两个字段的用户表:id和user_name
当我返回User :: all();我将使用“{{”id“=> 1,”user_name“=>”bob}“等JSON。
我希望能够将user_name更改为用户名。如果模型上没有丑陋的foreach循环,我还没有找到方法。
答案 0 :(得分:1)
我不确定你为什么要首先这样做,并且如果你的应用程序/最好是让整个事情变得更均匀,那么首先会警告你结构...但如果你真的< / strong>想要这样做..你可以做到:
$user = User::find($id);
return Response::json(array('id' => $user->id, 'username' => $user->user_name));
这将返回一个你想要的JSON对象。
您还可以使用以下命令更改密钥的名称:
$arr[$newkey] = $arr[$oldkey];
unset($arr[$oldkey]);
答案 1 :(得分:1)
看看robclancy的presenter
包,这个ServiceProvider
处理你想要实现的东西。
答案 2 :(得分:-1)
只需将您隐藏的静态模型设置为您要隐藏的键:
类用户扩展了Eloquent { public static $ hidden ='id';
}
并使用get和set functons命名它们。