2017-03-28 11 views
0

まず、私はこの解決策を使用します - http://www.yiiframework.com/doc-2.0/guide-rest-error-handling.html しかし、私は2つのタイプのエラーをカスタマイズしたいと思います。Yii2 REST:エラーレスポンスをカスタマイズするには?

  1. モデル検証が間違っている場合。
  2. すると間違って何か(Exceptiin)

もしモデルの検証私はそのような応答を取得し、間違った:

{ 
    "success": false, 
    "data": [ 
     { 
      "field": "country_id", 
      "message": "Country Id cannot be blank." 
     }, 
     { 
      "field": "currency_id", 
      "message": "Currency Id cannot be blank." 
     }, 
     { 
      "field": "originator_id", 
      "message": "Originator Id cannot be blank." 
     } 
    ] 
} 

しかし、私はそのようにしたい:

{ 
    "success": false, 
    "data": [ 
"errors": [ 
{ 
      "field": "country_id", 
      "message": "Country Id cannot be blank." 
     }, 
     { 
      "field": "currency_id", 
      "message": "Currency Id cannot be blank." 
     }, 
     { 
      "field": "originator_id", 
      "message": "Originator Id cannot be blank." 
     } 
] 

    ] 
} 

第二型エラーをI取得する

{ 
    "success": false, 
    "data": { 
     "name": "Exception", 
     "message": "Invalid request arguments", 
     "code": 0, 
     "type": "yii\\base\\InvalidParamException",  
     ] 
    } 
} 

しかし、私はしたい:

{ 
    "success": false, 
    "data": { 
     "errors" : 1, <---------------- 
     "name": "Exception", 
     "message": "Invalid request arguments", 
     "code": 0, 
     "type": "yii\\base\\InvalidParamException",  
     ] 
    } 
} 

とにかくユーザーに200応答を取得し、彼らはエラーや間違いを知ってドンので。

+0

を使用しますか。 – zakrzu

答えて

0

エラーのあるデフォルトのyii/rest/controllerモデルを使用している場合422 yii/rest/Controllerまたはyii/rest/ActiveControllerを使用するか、拡張します。あなたがエラーとデフォルトのRestControllerモデルが422を送信する使用している場合 は自身のシリアライザ

http://www.yiiframework.com/doc-2.0/yii-rest-serializer.html

関連する問題