У меня есть API в котором нужно возвращать ошибки клиенту с помощью исключений. Например, клиент запросил несуществующий документ и приложение выбросило исключение:
public function actionGet($docId)
{
return (array) $this->findModel($docId);
}
protected function findModel($id)
{
if (($model = Doc::findOne($id)) !== null) {
return $model;
}
throw new NotFoundHttpException("Документ {$id} не найден");
}
В таком случаи, yii должен вернуть ответ следующего вида:
{
"success": false, // Успен/Не успех
"message": "Документ 10 не найден", //Текст из исключения
}
Вместо этого yii возвращает свой дефолтный вывод который меня не устраивает
{
"name":"Not Found",
"message":"Документ 10 не найден",
"code":0,
"status":404
}
Проблема в том, что я не могу найти способ как кастомизировать вывод исключений. Пытался использовать errorHandler
, он даже не срабатывает. Как я понял - errorHandler
не работает если Yii::$app->response->format
установлен в yii\web\Response::FORMAT_JSON;
.
Возможно вы спросите, зачем это нужно? Это просто удобно и уменьшает количество кода.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Есть файл с кодом который вызывает rss для показа на сайтеНо кодировка rss
Есть код кнопки нравитсяНа данный момент один пользователь может нажимать на кнопку любое количество раз
Есть некоторый цикл (представлен частично от основного кода, но суть передает):
когда я нажимаю на submit появляется форма, но когда я нажимаю на следующий, то прошлый забывается