В настоящее время я работаю над laravel framework, и я застрял с некоторыми связями и проблемами загрузки.
Ситуация
У меня три модели A, B и C
У меня есть два отношения
- A имеет много B
- B имеет много C
По умолчанию (с использованием $ с атрибутом в модели):
- A не включает B
- B включает C
Так что большую часть времени я использую A без B и B с C
А вот как я настроил методы отношений и готов к загрузке
class A extends Model {
...
protected $with = [];
public function bs() {
return $this->hasMany('App\Models\B');
}
}
class B extends Model {
...
protected $with = ['cs'];
public function cs() {
return $this->hasMany('App\Models\C');
}
public function a() {
return $this->belongsTo('App\Models\A');
}
}
class C extends Model {
...
public function b() {
return $this->belongsTo('App\Models\B');
}
}
Задача
Для уточнения c задача Я хотел бы запросить А со всеми Б и без каких-либо C
Когда я использую A::query()->with('b')
C, по умолчанию загружаются
Так что я пытаясь использовать A::query()->with('b')->without('b.c')
Но он продолжает загружать B в C отношения.
У вас есть идеи, как этого добиться?
Спасибо за вашу помощь!