Всего существует 5 групп ответов:
- 1xx Информационные сообщения
- 2xx Успешное выполнение запроса
- 3xx Перенаправления (редирект)
- 4xx Ошибки клиента
- 5xx Ошибка на сервере
В Yii2 есть класс \yii\web\HttpException с помощью которого можно создать любое исключение.
Код:
throw new HttpException(404 ,'User not found');
Так же существуют классы со звучными именами для наиболее часто используемых типов ошибок, благодаря которым вам не нужно запоминать код ответа.
- BadRequestHttpException — 400 ошибка
- UnauthorizedHttpException — 401 ошибка
- ForbiddenHttpException — 403 ошибка
- NotFoundHttpException — 404 ошибка
- MethodNotAllowedHttpException — 405 ошибка
- NotAcceptableHttpException — 406 ошибка
- ConflictHttpException — 409 ошибка
- GoneHttpException — 410 ошибка
- UnsupportedMediaTypeHttpException — 415 ошибка
- TooManyRequestsHttpException — 429 ошибка
- ServerErrorHttpException — 500 ошибка
Все они отнаследованы от \yii\web\HttpException и не нуждаются указании кода ответа.
Код:
throw new NotFoundHttpException('User not found');
Установить статус ответа можно и с помощью метода setStatusCode() класса yii\web\Response
Код:
Yii::$app->response->setStatusCode(422);
Это удобно тогда, когда есть необходимость передать что-либо в теле ответа.