新しいプロジェクトでAngular JS、PHP、Slimframeworkを使用します。スリムフレームワークでカスタムレスポンスステータスコードを設定する方法
私はAngular JSで約束をしていますが、応答ステータスコードがAPIから200として返される場合は、「成功」部分のみが機能します。
Slimframeworkデフォルトの応答ステータスコードでは200で、(それは普通のことだエラーが存在しない場合)、すべての私の要求はステータスコード200を返す
しかし、私はいくつかの検証を作りたいと検証が失敗した場合、私はちょうどしたいですSlimフレームワークでカスタムステータスコードを変更または設定できます。この場合、私は、例えば、 "エラー" のコードブロック
と角度JSで問題をキャッチすることができるようになります:
SlimFrameworkパート
$app->get('/getUserInformations/{user_id}', function(Request $request, Response $response){
if(isLoggedIn()){
//Do something and send an answer with status code 200
}else{
//Send some errors with status code 500 or something else
}
});
角度JSパート:
user.getUserInformations = function(){
var defer = $q.defer();
$http.get($rootScope.defaultApiPath + '/getUserInformations/1')
.success(function(response){
//if status code is 200 this means user logged in. Do something
defer.resolve(response);
})
.error(function(error, status){
// if status code is 500 this means not logged in. Show error message
defer.reject(error);
});
return defer.promise;
};
SlimFrameworkのドキュメントで、私は何かを見つけた
$newResponse = $response->withStatus(302);
$data = array('name' => 'Rob', 'age' => 40);
$newResponse = $oldResponse->withJson($data, 201);
しかし、私はそれらを使用できませんでした。
は事前
リターン$対応 - > withStatus(XXX)のために、 – geggleto
答えとして書くことができますか。私は正解としてそれを設定したい:)ありがとう、ありがとう。 50行の質問、1行の答え。すばらしいです.. –