Задать вопрос
ArtyomovAnton
@ArtyomovAnton
PHP и всё что рядом

Как в Active Record Yii2 перехватить ошибку (Exception) БД?

Здравствуйте. Yii2 + Postgesql.
Поле ID типа UUID.
Пытаюсь
try {
            $file = Files::find()->where(['CREATED_BY' => \Yii::$app->user->id, 'ID' => $id])->one();
        } catch (Exception $ex) {
            throw new \yii\web\NotFoundHttpException('Запись не найдена');
        }

Для теста передаю в $id строку '234234'. В браузер выходит соответствующая ошибка базы данных о несоответствии переданного значения типу поля..
Почему try catch не перехватывает ошибку? Как правильно её перехватить? Нагуглить так и не смог. Гуглил "Yii2 Active Record try catch" и комбинации...
  • Вопрос задан
  • 477 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@karminski
Senior React.JS Developer
Какой именно класс Exception вы используте (namespace приведите)? Попробуйте использовать \yii\db\Exception или вообще глобальный \Exception.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Потому что find() не возвращает ошибку, а возвращает нул, поэтому в данном случае надо проверять нул или нет
Ответ написан
Ваш ответ на вопрос

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

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