0

Slim Framework で安らかな API を構築しました。エラー状態については、エラー ケースごとに適切なエラー コードで応答し、$app->halt で呼び出すだけです。次に例を示します。

$app->halt(403, "Unauthorized");

しかし、API を -v でカールさせ、HTTPFox を使用して Firefox でヘッダーを表示すると、常にエラー コード 500 が表示されます。これに気付いた人はいますか? 足りないものはありますか?

4

3 に答える 3

0

ルート コールバックの外で halt() メソッドを呼び出すことはできません。このように使用する必要があります。

$app->get('/method/', function () {
  //logical controls
  //do something
    //or
  $app->halt();
});   
于 2013-11-28T22:14:39.997 に答える
0

Halt() と setStatus() には違いがあります。

halt()を使用すると、現在のスクリプトの実行を停止し、送信することを選択した HTTP ステータス コードとメッセージに従って応答をレンダリングします。次のコードを使用して、アプリのどこでも実行できます。

$app = \Slim\Slim::getInstance(); //if you don't have access to $app
$statusCode = 403;
$body = 'Unauthorized';
$app->halt($statusCode, $body);
//App will stop immediately

setStatus ()または$this->response->status(); を使用 送信する HTTP ステータス コードのみを変更しますが、アプリは通常どおり実行を継続し、停止しません。ルート実行の最後にスリムがクライアントに送信するヘッダーのみを変更します。

$app = \Slim\Slim::getInstance(); //if you don't have access to $app
$statusCode = 403;
$app->response->setStatus(400);
//App will continue normally
于 2015-06-19T10:03:30.747 に答える