在Laravel API资源中隐藏属性

在Laravel API资源中隐藏属性,laravel,laravel-collection,laravel-api,Laravel,Laravel Collection,Laravel Api,我想在集合API资源中隐藏一个属性 我不想总是这样做,所以我需要像makeHidden()这样的东西在我想做的时候做 但是API资源返回的实例没有makeHidden()方法 Eloquent Collection类是Lightning\Database\Eloquent\Collection 如何才能做到这一点?如果您想为某些情况自定义响应,可以创建第二个资源类,该资源类仅包含所需的属性: class FirstResource扩展了JsonResource{ 公共功能待命($request)

我想在集合API资源中隐藏一个属性 我不想总是这样做,所以我需要像
makeHidden()
这样的东西在我想做的时候做

但是API资源返回的实例没有
makeHidden()
方法 Eloquent Collection类是
Lightning\Database\Eloquent\Collection


如何才能做到这一点?

如果您想为某些情况自定义响应,可以创建第二个资源类,该资源类仅包含所需的属性:

class FirstResource扩展了JsonResource{
公共功能待命($request)
{
返回[
“第一个值”=>this->first\u值,
“第二个值”=>this->second\u值,
“第三个值”=>this->third\u值,
“第四个值”=>this->fourth\u值,
];
}
}
class SecondResource扩展了JsonResource{
公共功能待命($request)
{
返回[
“第一个值”=>this->first\u值,
“第二个值”=>this->second\u值,
];
}
}
然后在需要时使用它们:

公共函数控制方法()
{
$model=MyModel::find($id);
返回新的FirstResource($model);
}
公共函数另一个控制器方法()
{
$model=MyModel::find($id);
返回新的SecondResource($model);
}
现在,您将从同一个模型(或集合)获得两个不同的响应