我的模型渴望通过访问器加载很多东西。我想更改它以在每种情况下指定访问器。如何在查询中包含此类访问器,以便获得基本模型数据以及访问器数据
访问者以前会渴望加载:
protected $appends = [
'status',
]
但是,如果我摆脱了急切的加载,并且想要包括这个配件,那么:
public function getStatusAttribute() {
return self::STATUS_ACTIVE;
}
然后我可以根据文档进行此操作:
$prod = \App\Product::find(736)->status;
可以,但是我没有基本的模型数据。
我不能做:return $prod = \App\Product::find(736)->with('status')->first()
显示错误:Call to undefined relationship [status] on model
那么如何添加此类访问器以包含在模型数据中?
编辑:
正如Staudenmeir所说,我可以\App\Product::find(736)->append('status');
这可以解决单个结果。但是,如何为许多结果附加数据?
append
或appends
都不起作用:
此:\App\Product::whereIn([34, 55])->appends('status');
产生"Method appends does not exist.",
我看到您可以在“-> paginate()”上使用“ appends”
$products = \App\Product::whereIn([34, 55])
->paginate(12)
->appends('status');
但这会将其作为查询字符串附加到url。很奇怪-我想以与json响应中单个结果相同的方式附加它。
答案 0 :(得分:0)
您尚未先获取集合,然后再访问result的属性。
$prod = \App\Product::find(736);
$status = $prod->status;