Задать вопрос

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

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

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

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

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

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