У меня есть 2 модели: модель клиента hasMany depos_quantity (ClientDeposit)
class Client extends Model
{
public function deposits_quantity()
{
return $this->hasMany(ClientDeposit::class, 'client_id');
}
}
как получить указанное c количество связанных результатов модели (deposit_quantity) без торможения запроса «сцепление»? Предположим, у меня есть цепочка запросов, например:
$query = Client::query()
, и, например, у меня есть фильтр, который фильтрует отношение по дате создания:
$query->whereHas('deposits_quantity', function($query) use($request) {
$query->whereDate('created_at', '>=', $request->input('deposit_at_from'))
->whereDate('created_at', '<=', $request->input('deposit_at_to')); })
и далее, когда я пытаюсь отфильтровать количество отношения следующим образом чтобы получить только Клиентов с 2 deposit_quantity:
$query->has('deposits_quantity' ,'=', 2')
возвращает Клиентов с 2 Депозитами, но тормозит цепочку запросов и возвращает результаты с начала без всех фильтров до этого, возвращает clean «has» и игнорирует другие Фильтры, я знаю это, потому что я называю «имеет», но как сделать это правильно, чтобы получить результаты по определенному c количеству отношений и после фильтрации?