从数据库表返回具有不同名称的Eloquent模型

时间:2013-06-14 08:44:21

标签: laravel laravel-4

我想返回一个Eloquent模型的JSON,但我想更改数组键。默认情况下,它们被设置为表字段名称,但我想更改它们。

例如,如果我有一个包含两个字段的用户表:id和user_name

当我返回User :: all();我将使用“{{”id“=> 1,”user_name“=>”bob}“等JSON。

我希望能够将user_name更改为用户名。如果模型上没有丑陋的foreach循环,我还没有找到方法。

3 个答案:

答案 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处理你想要实现的东西。

GITHUB LINK

答案 2 :(得分:-1)

只需将您隐藏的静态模型设置为您要隐藏的键:

类用户扩展了Eloquent {     public static $ hidden ='id';

}

并使用get和set functons命名它们。