Php Laravel-选择toJson中的字段

Php Laravel-选择toJson中的字段,php,json,laravel,Php,Json,Laravel,是否有办法限制toJson方法中返回的字段? 我可能会在say和index上调用toJson,在这里我只需要几列,然后在另一个页面上,我可能想返回更多字段,这样一个toJson覆盖就不会削减它 也许像 toJson(['id', 'name']); 所以我可以在别的地方做 toJson(['id', 'name', 'address']); 或者有更好的方法吗?看起来您正在从应用程序的不同页面分别访问数据库。如果是这样的话,那么您可以只为get()或all()方法提供一个列数组,而不是重写t

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

也许像

toJson(['id', 'name']);
所以我可以在别的地方做

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

或者有更好的方法吗?

看起来您正在从应用程序的不同页面分别访问数据库。如果是这样的话,那么您可以只为
get()
all()
方法提供一个列数组,而不是重写
toJson()

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

Laravel现在包括:

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

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

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