扔redexception时,如何返回数据对象


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.");
   }
}

最新更新