Создание своего исключения в Yii2

187
12 октября 2018, 02:50

) Пишу сейчас API для проекта, для работы с API создал два родительских контроллера от которых наследуются все остальные. В этих контроллерах вызывается метод init(), который получает необходимые данные для дальнейшей работы дочерних контроллеров. Один предназначен для выполнения общедоступных действий, а во втором в init() вызывается метод, который авторизует пользователя. Так вот, проблема вот в чем - когда в родительском контроллере предназначенном для действий требующих авторизацию, вызывается метод, который проверяет данные для авторизации и если данные не верны то кидает исключение. Все работает, но исключение выглядит таким образом:

    Array
(
    [name] => Exception
    [message] => Not authenticated!
    [code] => 0
    [type] => api\exceptions\APIErrorException
    [file] => /var/www/a2r2/api/controllers/InternalRestController.php
    [line] => 36
    [stack-trace] ...  
)

а мне нужно вернуть в формате JSON и то только две строки

  { 
        "Status" : "BAD", 
        "Message" : "Unauthorized" 
  }

Перерыл море инфы и не нашел нечего годного(( Может вы что подскажите?

Answer 1

Для того, чтобы была возможность кастомизировать сообщение Exception, нужно унаследоваться от класса ExitException.
Только есть один нюанс.
Вместо сообщение передает массив, обернутый в json_encode.

READ ALSO
Проблема передачи строки из PHP в JS

Проблема передачи строки из PHP в JS

Разработанный сайт исправно работает без ошибок на локальном сервереОднако на хостинге возникают проблемы

201
Автоматическая очистка полей

Автоматическая очистка полей

Как убрать автоматическую очистку полей в php? Те когда пользователь заполняет поля, и нажимает на кнопку, то поля очищаются

163