Почему модель записанная в переменную работает не правильно?

Почему после первого запроса, модель изменяется если я записываю ее в переменную?

$this->order = MyModel::where('id', $this->id);
$foo = $this->order->where('id_user', 1)->count(); //работает
$bar = $this->order->where('id_user', 2)->count(); //не работает

Проведя небольшой эксперимент я понял, что если я во второй строке заменю where на orWhere, окажется что он запоминает первое значение. Я не совсем понимаю эту механику, кто поможет разобраться в этом, и как сделать, чтобы модель не изменялась? Или на каждой итерации нужен новый объект модели?
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
New_Horizons
@New_Horizons
Бред:
Как заметили в комментариях, там у вас не модель, а билдер.
Когда вы вызываете у него where, вы изменяете объект этого самого билдера. Когда вы вызываете второй раз, условия складываются.
У вас получается что-то типа:
where id_user = 1 && id_user = 2
Что не имеет смысла в принципе, потому что одно и тоже поле не может равняться сразу двум разным значениям.

Решение: использовать clone
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
26 апр. 2024, в 07:20
2000 руб./за проект
26 апр. 2024, в 06:46
1000 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект