webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg

Правильно ли так формировать ошибки для json запроса?

Есть экшен, принимает только ajax. Проверяет есть ли запись с таким id и есть ли доступ к удалению записи с таким id. Все работает, но не уверен в правильности вот этой части:
Yii::$app->response->setStatusCode('401',Yii::t('text','You are not allowed to perform this operation'));
                return false;

Вот весь экшен:
public function actionDeleteComment($id)
    {
        Yii::$app->response->format = Response::FORMAT_JSON;
        if($model = Comment::findOne($id)) {
            if (Yii::$app->user->can('updateComment', ['comment' => $model])) {
                $model->delete();
                return ['status'=>'success','message'=>Yii::t('text','Your post deleted successfully')];
            }else{
                Yii::$app->response->setStatusCode('401',Yii::t('text','You are not allowed to perform this operation'));
                return false;
            }
        }
        Yii::$app->response->setStatusCode('404',Yii::t('text','An error occurred'));
        return false;
    }

Стоит ли делать setStatusCode или просто возвращать json, а там уже в js if else разбирать ошибка или нет и выводить ошибку?
Ошибки вывожу через скрипт alertify.
Всем идеям, ссылкам и тыканьям носом в каку - большой респект.
  • Вопрос задан
  • 296 просмотров
Решения вопроса 1
mitaichik
@mitaichik
Возвращать HTTP статус - (именно это делает setStatusCode) - да, надо, это правильно, и со стороны js писать код удобнее будет. Ваши сомнения, скорее всего, из-за того, что мало кто так делает - но это чисто из-за неопытности тех кто так не делает.

Еще, если у вас json, совету почитать все про rest из документации yii (https://github.com/yiisoft/yii2/tree/master/docs/g... - там много интересного написано, в фреймворке уже кое-чего подготовленно для этого.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы