簡體   English   中英

Laravel - Model Eloquent 無關系

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM