les-anatoliy
@les-anatoliy

Почему whereHas работает не правильно?

Добрый день!
Суть проблемы в том что при выборке депозитов у которых срок в диапазоне от и до:
$deposits = new Deposits;
/* тут еще код */
$deposits = $deposits->whereHas('currencies', function ($query) use ($post) {
    switch ($post['term']) {
        case 1: { $query->where('term_ot', '<=', 1);   break; }
        case 2: { $query->where('term_ot', '>=', 1)->where('term_ot', '<=', 3); break; }
        case 3: { $query->where('term_ot', '>=', 3)->where('term_ot', '<=', 6); break; }
        case 4: { $query->where('term_ot', '>=', 6)->where('term_ot', '<=', 9); break; }
        case 5: { $query->where('term_ot', '>=', 9)->where('term_ot', '<=', 12); break; }
        case 6: { $query->where('term_ot', '>=', 12)->where('term_ot', '<=', 24); break; }
        case 999: { $query->where('term_ot', '>=', 24); break; }
    }
}

Когда делаю
dd($deposits->toSql());
Показать запрос в sql формате и вставляю в MySQL менеджер, то выдает результат правильный.
А когда вывожу
$deposits = $deposits->orderBy('title')->get();
То так выводит больше результатов.
Почему так происходит?
  • Вопрос задан
  • 148 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы