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 に設定する方法がわかりません。

Restler3を使用しています。

4

1 に答える 1

0

レスポンダークラスは、エラー応答と成功応答に構造を与える責任があります

以下に示すように 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 に答える