在項目中,我有類配置這樣急於關係很多雄辯型號:禁用急於關係
protected $with = [ 'countries', 'roles' ];
但有時我需要沒有任何關係,只是普通的舊模式。我可以以某種方式做:
Model::noRelations()->all()
真的不想使用查詢生成器也不創建另一個類只是少數場合。
在項目中,我有類配置這樣急於關係很多雄辯型號:禁用急於關係
protected $with = [ 'countries', 'roles' ];
但有時我需要沒有任何關係,只是普通的舊模式。我可以以某種方式做:
Model::noRelations()->all()
真的不想使用查詢生成器也不創建另一個類只是少數場合。
如果你必須設置你的模型的$with
屬性,而不是留空,您可以手動覆蓋需要急於關係加載這樣的:
Model::setEagerLoads([])->get();
除了托馬斯金的回答。
如果您無論如何擴展Eloquent \ Model類並且經常需要從模型中剝離關係,該解決方案可能適合您。
在默認的模型類創建範圍:
public function scopeNoEagerLoads($query){
return $query->setEagerLoads([]);
}
對於任何ORM,這擴展了類,你將能夠:
User::noEagerLoads()->all()
就像一個魅力!正是我需要的。 –
我該如何實現這個,如果這個模型被引用與其他模型的關係像ModelTwo :: with('modelOne') - > get();那麼如何避免加載modelOne呢? – BlackBurn027