我在访问者属性中加载关系:
public function getNameAttribute()
{
return $this->someRelation->name . ' x ' . $this->otherRelation->name;
}
当通过Http响应发送数据时调用->toJson
时,会包含这些关系中的数据,但我只想包含name
属性。
一个解决方案可能只是将这些关系设置为hidden
,但我不愿意,因为我担心如果我需要实际加载这些关系,它会回来咬我。
将模型转换为数组/ json时,如何避免这种“副作用”数据?
答案 0 :(得分:1)
我没试过,但是从laravel docs你可以使用makeHidden()到临时隐藏属性(包括关系),即。
return $model->makeHidden(['someRelation', 'otherRelation'])->toJson();
// or
return $model->makeHidden('someRelation')->makeHidden('otherRelation')->toJson();