У меня есть модель с отношениями, и я хочу вернуть только часть этих отношений, которые соответствуют запросу.
Но я не достигаю этого, каждый раз, когда возвращаются все отношения.
Мои модели
лот
public function etageLots()
{
return $this->hasMany('App\Models\Copro\EtageLot');
}
EtageLot
public function lot()
{
return $this->belongsTo('App\Models\Copro\Lot');
}
public function fractions()
{
return $this->hasMany('App\Models\Copro\Fraction','etage_lot_id');
}
Доля
public function etageLot()
{
return $this->belongsTo('App\Models\Copro\EtageLot','etage_lot_id');
}
public function type()
{
return $this->belongsTo('App\Models\Copro\Type');
}
А, Тип
public function fractions()
{
return $this->hasMany('App\Models\Copro\Fraction');
}
А вот запрос, который я пробовал:
$lots2 = Lot::whereHas('etageLots.fractions.type', function ($query) {
$query->where('types.surface_ascenseur','>',0);
})
->with("etages.coeff")
->where('lots.id', '=', 1)
->first();
dd($lots2->etageLots->first()->fractions);
(возвращать все дроби, даже если types.surface_ascenseur> 0)
$lots2 = Lot::with(['etageLots.fractions.type' => function ($query) {
$query->where('types.surface_ascenseur','>',0);
}])
->with("etages.coeff")
->where('lots.id', '=', 1)
->first();
dd($lots2->etageLots->first()->fractions)
(возвращать все дроби, даже если types.surface_ascenseur> 0)
$lots2 = Lot::with('etageLots.fractions.type',"etages.coeff")
->whereHas('etageLots.fractions.type', function ($q) {
$q->where('surface_ascenseur','>',0);
})
->where('lots.id', '=', 1)
->first();
dd($lots2->etageLots->first()->fractions);
(возвращать все дроби, даже если types.surface_ascenseur> 0)
$lots2 = Lot::with(['etageLots.fractions' => function ($query) {
$query->whereHas('type', function ($q) {
$q->where('surface_ascenseur','>',0);
});
}
])
->with("etages.coeff")
->where('lots.id', '=', 1)
->first();
dd($lots2->etageLots->first()->fractions)
(вернуть правильное количество дробей, но без отношения 'type', и мне это нужно)
Как вернуть дроби только с fractions.type.surface_ascenseur> 0?
Спасибо за вашу помощь