1

Eloquent モデルの JSON を返したいのですが、配列キーを変更したいと思います。デフォルトではテーブルのフィールド名として設定されていますが、変更したいです。

たとえば、id と user_name の 2 つのフィールドを持つ users テーブルがあるとします。

User::all(); を返すと "[{"id" => 1, "user_name" => "bob}] などの JSON があります。

user_name を username に変更できるようにしたいと思います。モデルにい foreach ループを使わずにそれを行う方法が見つかりませんでした。

4

3 に答える 3

1

robclancy のpresenterパッケージを見てください。これServiceProviderは、達成したいことを処理します。

GitHub リンク

于 2013-06-14T08:53:46.903 に答える
1

そもそもなぜこれをやりたいのか、アプリの構造について最初に警告するのか、全体を統一した方がよいのかわかりません..しかし、本当にやりたいのであれば..出来ました:

$user = User::find($id);
return Response::json(array('id' => $user->id, 'username' => $user->user_name));

これにより、必要なものを含む JSON オブジェクトが返されます。

次の方法でキーの名前を変更することもできます。

$arr[$newkey] = $arr[$oldkey];
unset($arr[$oldkey]);
于 2013-06-14T08:48:58.530 に答える
-1

モデルの $hidden static を非表示にするキーに設定するだけです。

class User extends Eloquent { public static $hidden = 'id';

}

get および set 関数を使用して、好きなように名前を付けます。

于 2013-06-14T08:52:23.003 に答える