如何正确使用 API 资源 Resources 功能
文档中是这么介绍的
当构建 API 时,你往往需要一个转换层来联结你的 Eloquent 模型和实际返回给用户的 JSON 响应。Laravel 的资源类能够让你以更直观简便的方式将模型和模型集合转化成 JSON。
现在对返回一个资源集合的时候,不知道怎么处理,比如要返回一个用户列表,表中有10个字段,但是接口中只想返回其中 3 个字段,另外 7 个字段不需要返回。
那在 UserCollection 中怎么处理呢?因为 User 是个集合,不能直接用这种方式。
return [
'name' => $this->name,
'address' => $this->address,
'tel' => $this->tel
];
可以用 $this->collection
获得 User 集合,然后自己处理吗?类似这种
foreach ($this->collection as &$data) {
unset($data['sort_field']);
unset($data['deleted_at']);
unset($data['created_at']);
unset($data['updated_at']);
}
也可以用 Model 的 $hidden 属性来控制隐藏什么,但是如果用这种方式就不仅仅是接口数据隐藏了,直接查询的所有操作都会被隐藏。
以上应该都不是正确的玩法,你们怎么处理的呢?
推荐文章: