Laravel - 选择toJson中的字段

时间:2014-07-22 02:44:04

标签: php json laravel

如果有办法限制toJson方法中返回的字段? 我可能会在json上调用say和index,我只需要几列,然后在另一个页面上我可能想要返回更多的字段,这样一个toJson覆盖就不会削减它。

也许像

toJson(['id', 'name']);

所以我可以做的其他地方

toJson(['id', 'name', 'address']);

还是有更好的方法吗?

2 个答案:

答案 0 :(得分:0)

您似乎正在从应用程序的不同页面单独访问数据库。如果是这样,那么您可以只提供toJson()get()方法的列数组,而不是覆盖all()

YourModel::all(['id', 'name'])->toJson();
YourModel::where('age', '<', '65')->get(['id', 'name'])->toJson();

和另一个你称之为

的页面
YourModel::all(['id', 'name', 'address'])->toJson();
YourModel::orderBy('id', 'desc')->get(['id', 'name', 'address'])->toJson();

答案 1 :(得分:0)

Laravel现在包括:

protected $visible = array('first_name', 'last_name');

protected $hidden = array('password');

是toArray和toJson的白名单/黑名单

http://laravel.com/docs/4.2/eloquent#converting-to-arrays-or-json