0

我正在为我的 Rest API 使用无脂肪框架。我对我的一个数据库字段有一个独特的约束。我的问题是如何根据 mysql 重复输入错误触发正确的 HTTP 错误。

以下是我的插入功能

    $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 错误。请指导我。

4

2 回答 2

1

您可以使用 try / catch 语句并调用 $f3->error('400','MSG') 来发送您最喜欢的 http 状态代码之一并触发 ONERROR 处理程序,如果您只想发送状态代码标头,您可以使用 f3->status 方法

于 2014-02-17T22:21:02.410 回答
0

尝试查看此文档:http: //fatfreeframework.com/framework-variables#about-the-f3-error-handler

于 2014-02-17T14:24:10.813 回答