0
function put($id, $name)
{
   try
   {
       product::put($id, $name);
   }
   catch(\util\BadNameException $e)
   {
       throw new RestException(400, "Please supply a better name.");
   }
}

返回错误消息时,我还想在(array)product::getNamingConvention()错误中包含结果。我怎样才能做到这一点?

我可以只返回一个包含错误消息和数据的自定义数组,但我不知道在这种情况下如何将状态码设置为 400?

我正在使用 Restler 3。

4

1 回答 1

0

Responder 类负责给错误响应和成功响应一个结构

您可以如下所示扩展 Responder 类以添加数据属性

use \Luracast\Restler\Responder;
use \Luracast\Restler\Defaults;

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(\util\BadNameException $e)
   {
       MyResponder::$data = product::getNamingConvention();
       throw new RestException(400, "Please supply a better name.");
   }
}
于 2012-10-29T06:26:40.617 回答