如果有办法限制toJson方法中返回的字段? 我可能会在json上调用say和index,我只需要几列,然后在另一个页面上我可能想要返回更多的字段,这样一个toJson覆盖就不会削减它。
也许像
toJson(['id', 'name']);
所以我可以做的其他地方
toJson(['id', 'name', 'address']);
还是有更好的方法吗?
答案 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