2017-04-16 6 views
0

私は安らかなapiとその正常な作業のためにYii2を使用しています。しかし、私はヘッダーのステータスを変更したい。私は、ユーザーID 13記録と私のAPIレスポンスはyii2でhttpヘッダーのステータスコードを変更する方法RESTful api

{"name":"Not Found","message":"","code":0,"status":404} 

になりますので、データベースには見られない。このIDにアクセスしたいとしますがheader statusで私がレコード場合404あるAPIレスポンスのように、ヘッダー内の同じステータスをする必要はありません200です見つかりました。私はAPIレスポンスに応じてヘッダのステータスを変更するにはどうすればよい

答えて

1
Yii::$app->response->statusCode = 404; 

出典:http://www.yiiframework.com/doc-2.0/guide-runtime-responses.html

ガイドでは、ステータスコードを変更するには、エラーをスローすることをお勧めします。

+0

はい、それはapiの応答でのみ変更されますが、httpヘッダーは変更されません –

+0

@ArslanButt他の問題が発生している可能性があります。それらの2つは同じです。 apiの応答はhttpを介して行われ、応答ヘッダーと応答ステータスコードのセットが1セットあります。 – glyph

0

応答コードを設定する代わりに、コントローラを使用して404を送信します。モデルを見つけたらコントローラアクションでこれを追加できます。

if (!$model) { 
    throw new HttpException(404, Yii::t('app','Record not found.')); 
} 

これはJSON APIまたは通常のHTMLで動作します。

関連する問題