我的控制器上有一个收藏集,如下所示:
$data = Accommodation::with(['city','accommodationRoomsLimited.roomPricingHistorySearch' => function($query) use($from_date,$to_date){
$query->whereDate('from_date', '<=', $from_date);
$query->whereDate('to_date', '>=', $to_date);
}])
->get();
return new FilterResource($data);
这是我的过滤器资源
public function toArray($request)
{
//return parent::toArray($request);
return [
'id' => $this->id,
'costumfields' => 'somecostumfields'
];
}
现在,我想自定义资源,以便可以向其中添加一些自定义字段并自定义api上的当前字段,但是此代码给了我以下错误:
“消息”:“此集合实例上不存在属性[id]。”,
答案 0 :(得分:2)
如果您要返回收藏集,则应为:
return FilterResource::collection($data);
答案 1 :(得分:2)
在Laravel雄辩的get()
函数中返回一个集合。
解决方案
collection()
。return FilterResource::collection($data);
Accommodation
,则需要在口才查询中调用first()
。$accommodation = Accommodation::with([
'city',
'accommodationRoomsLimited.roomPricingHistorySearch' => function($query) use($from_date,$to_date) {
$query->whereDate('from_date', '<=', $from_date);
$query->whereDate('to_date', '>=', $to_date);
}])
->first();
return new FilterResource($accommodation);