Генерация ошибок HTTP с помощью Fat-Free-Framework

Я использую обезжиренный фреймворк для своего Rest API. У меня есть уникальное ограничение для одного из полей моей базы данных. Мой вопрос заключается в том, как я могу вызвать правильную ошибку HTTP на основе ошибки дублирования записи mysql.

Ниже приведена моя функция вставки

    $username = $f3->get('username');
    $status=$GLOBALS['db']->exec('INSERT INTO Users 
                     VALUES(:userID,:username)',
                     array(':userID'=>'',':username'=>$username));

    header('Content-Type: application/json');                                                                   
    return (json_encode($status)); 

Мой оператор вставки вызывает следующую ошибку на основе уникального ограничения поля

Internal Server Error
PDOStatement: Duplicate entry 'someUserName' for key 'username'

Я хочу вызвать ошибку HTTP, потому что на стороне клиента я могу обрабатывать ошибки HTTP. Пожалуйста, помогите мне.


person Umair    schedule 17.02.2014    source источник


Ответы (2)


Вы можете использовать оператор try/catch и вызвать $f3->error('400','MSG'), чтобы отправить один из ваших любимых кодов состояния http и запустить обработчик ONERROR. Если вы хотите отправить только заголовок кода состояния, вы можете использовать метод f3->status

person ikkez    schedule 17.02.2014

Попробуйте просмотреть эту документацию: http://fatfreeframework.com/framework-variables#about-the-f3-error-handler

person Ganz    schedule 17.02.2014