是否可以使用with方法使用预先加载但是给它另一个名字?就像是:
->with('documents as product', 'documents.documents as categories')
我有一个文档表,可以是产品或类别,渴望加载工作,但不是那么友好,只通过文档名称而不是它真正的文件名来检索文档。
急切加载告诉“加载此关系数据”,接下来您可以访问subject-> relation而无需进一步查询
如果你想重命名关系,也许你应该重新命名模型中的关系,而不是在急切的加载中
你也可以通过添加虚拟属性来绕过这个:
function getProductAttribute(){
return $this->document;
}
在原始文件上留下急切的装载
导致产品属性与文档相同:
$subject->product === $subject->document
我问自己同样的问题,因为我没有在网上找到满意的答案,这就是我的所作所为。我有:
$o->load('X');
但我希望$o
对象具有Y
属性与X
关系的值。由于我已经为Y
定义了$o
关系,我无法将X
重命名为Y
并完成工作。所以我做了
$o['Y'] = $o->X();
我知道这不是最好的解决方案,但它适用于我的情况:)
注意:load
and with
produce exactly the same number of sql queries - 你需要选择一个更适合你情况的那个。