Я нахожусь в процессе обновления приложения Laravel 4.1 до 5.2 и сталкиваюсь с проблемой с Eloquent или Ardent при попытке выполнить запросы к БД.
Наше приложение использует модель репозитория, поэтому проблема в итоге выглядит следующим образом:
Блок контроллера ($ this-> user является хранилищем пользователей):
if ($user = $this->user->where('email_address', '=', $this->request->input('email_address'))->withTrashed()->first())
{
...
}
Если я закомментирую часть «где», то nginx не выгонит ошибку шлюза, поэтому я знаю, что это проблема.
Это связано с функцией в файле репозитория пользователя, где пользователь является классом модели:
public function where($col, $op, $cond)
{
return User::where($col, $op, $cond);
}
Модель User — это просто класс, расширяющий Ardent (пакет проверки, расширяющий Eloquent). Ничто не отменяет стандартную функцию Eloquent «где», поэтому я не уверен, что именно вызывает ошибку шлюза.
Любая помощь была бы признательна, если бы была полезна дополнительная информация, которую я могу предоставить, просто мне показалось, что здесь есть все, что нужно.
Задача ещё не решена.
Других решений пока нет …