Всего существует 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);

Это удобно тогда, когда есть необходимость передать что-либо в теле ответа.