[英]Laravel - Model Eloquent without relationships
我試圖從沒有關系的 model 加載所有行。
屬性 $with it 不是在我的事件 model 上設置的事件,但是當我這樣做時
$events = Event::all();
我所有的關系都已加載,我可以使用 dbquerylog 查看所有查詢。
我不明白為什么要加載這些關系,
請幫我。 謝謝。
我正在使用 Laravel 8。
這是一個例子。
class Event extends Model {
public function items() {
return $this->hasMany(Item::class);
}
public function items2() {
return $this->hasMany(Item2::class);
}
public function items3() {
return $this->hasMany(Item3::class);
}
public function items4() {
return $this->hasOne(Item4::class);
}
}
$events = Event::all();
有一天我遇到了這個問題,結果我在 scope 方法中使用了關系。 由於這種關系,值被添加到響應中。
看看這個例子:
class Event extends Model {
public function items() {
return $this->hasMany(Item::class);
}
[...]
public function scopeItemsGreen() {
return $this->items->every(function ($item) {
return $item->color == 'green';
});
}
如果您有 model object 的單個實例,您可以執行以下操作:
$obj->withoutRelations();
正如 laravel 文檔所說,您可以without
使用: https://laravel.com/docs/8.x/eloquent-relationships
Model
protected $with = ['item1','item2','item3','item4'];
Controller
$events = Event::without(['item1','item2','item3','item4'])->get();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.