function put($id, $name)
{
try
{
product::put($id, $name);
}
catch(utilBadNameException $e)
{
throw new RestException(400, "Please supply a better name.");
}
}
返回错误消息时,我还希望将(array)product::getNamingConvention()
的结果包括在错误中。我该怎么做?
我只能返回带有错误消息和数据的自定义数组,但是我不知道如何将状态代码设置为400?
我正在使用Restler 3。
响应者类负责给出错误响应和成功响应的结构
您可以扩展响应者类,如下所示,以添加数据属性
use LuracastRestlerResponder;
use LuracastRestlerDefaults;
class MyResponder extends Responder
{
public static $data = null;
public function formatError($statusCode, $message)
{
$r = array(
'error' => array(
'code' => $statusCode,
'message' => $message
)
);
if (isset(self::$data)) {
$r['data'] = self::$data;
}
return $r;
}
}
Defaults::$responderClass = 'MyResponder';
,然后设置您的课程中的数据,如下所示
function put($id, $name)
{
try
{
product::put($id, $name);
}
catch(utilBadNameException $e)
{
MyResponder::$data = product::getNamingConvention();
throw new RestException(400, "Please supply a better name.");
}
}