2016-05-01 8 views
0

私は例外を再スローする方法を理解していますMVC要求を処理しますが、それを処理する方法 - 別のサーバーからHTTP Responseのインスタンスとしてキャッチされましたか? [OK]を、私はいつ($response->status() < 300)、しかし、同じボディと同じコードで例外としてこの応答をスローすると思いますか?kohanaフレームワークでHMVCからキャッチされた例外を再スローする方法はありますか?

+0

リモートサーバーのユーザーの応答を表示しようとしていますか?リモートサーバーが500エラーをスローすると、500エラーもスローしますか? – Faraz

+0

レンダリングエラービューとレスポンスコードとして返信本体を受け取る Bu私はその本体に送信されたメッセージを取得したい – LINKeRxUA

+0

いいえ、現在のサーバー内のリモートHMVCではありません – LINKeRxUA

答えて

0

マスタコントローラの初期要求があるかどうかチェックする必要があります。 これを使用すると、完全な応答または最小応答を表示します。レスポンス本文をエラーメッセージとして使用することができます。

Request::is_initial()

class Controller_APP extends Controller { 
    public function after() { 
     if(! $this->request->is_initial()) { 
      $this->response->body ('only message'); 
     }else{ 
      $this->response->body ('Full rendered templage'); 
     } 
    } 
} 

要求は最初の要求でない場合にも、メッセージのみをレンダリングするために、あなたの例外ハンドラを変更することができます。

+0

私はphp.netからいくつかを読んでいます。おそらく最も普遍的な明確な方法は、Exceptionクラスの 'serialize' /' unserialize'と '__sleep()'/'__wakeup()'メソッドを定義し、 'SerializeOnException:1'を呼び出してそれを処理します。ヘッダーが渡され、value == trueの場合、デフォルトの '$ error_view'の代わりにjson encoded直列化例外オブジェクトを応答として使用します – LINKeRxUA

関連する問題