我想在 Collection API Resource 中隐藏一个属性,我不想总是这样做,所以我需要makeHidden()
在我想要的时候做一些事情。
Illuminate\Support\Collection
但是没有makeHidden()
方法 Eloquent 集合类的API 资源返回实例是Illuminate\Database\Eloquent\Collection
我怎样才能做到这一点 ?
我想在 Collection API Resource 中隐藏一个属性,我不想总是这样做,所以我需要makeHidden()
在我想要的时候做一些事情。
Illuminate\Support\Collection
但是没有makeHidden()
方法 Eloquent 集合类的API 资源返回实例是Illuminate\Database\Eloquent\Collection
我怎样才能做到这一点 ?
如果您想为某些情况自定义响应,您可以创建第二个 Resource 类,它只包含您想要的属性:
class FirstResource extends JsonResource {
public function toArray($request)
{
return [
'first_value' => $this->first_value,
'second_value' => $this->second_value,
'third_value' => $this->third_value,
'fourth_value' => $this->fourth_value,
];
}
}
class SecondResource extends JsonResource {
public function toArray($request)
{
return [
'first_value' => $this->first_value,
'second_value' => $this->second_value,
];
}
}
然后在需要其中之一时使用它们:
public function aControllerMethod()
{
$model = MyModel::find($id);
return new FirstResource($model);
}
public function anotherControllerMethod()
{
$model = MyModel::find($id);
return new SecondResource($model);
}
现在,您将获得来自同一模型(或集合)的两个不同响应。