2

503 ServiceUnavailableHTTPヘッダー を指定する必要があります。

通常、私はこれらを404および500コードに使用します

throw new NotFoundException();
throw new InternalErrorException();

しかし、CakePHP 2.2で503に関連する例外を見つけることができませんでしたか?

私の「app/lib / AppExceptionHandler.php」ファイルには、エラーを処理するこのクラス/関数があります。

class AppExceptionHandler {
    public static function handle($error) {
     }

編集:

  • app/Lib 」フォルダー内に、「 MyExceptions.php 」という名前のファイルを作成しました。このファイル内に次のコードを記述しました。

    class ServiceUnavailableException extends CakeException {
    
    protected $_messageTemplate = 'Service is not available now';
    
    }
    
  • bootstrap.php」で私はこれを書きました:

    App :: used('MyExceptions'、'Lib');

  • 次に、「MyNewController.php」ファイル内に次のように記述しました。

    新しいServiceUnavailableException( "試行中");をスローします。

しかし、この例外をスローすると、このエラーが発生します。

Fatal error: Class 'ServiceUnavailableException' not found in
 /var/www/vhosts/example.com/httpdocs/app/Controller/MyNewController.php
 on line 3560

Warning (2): Cannot modify header information - headers already sent by
(output started at 
/var/www/vhosts/example.com/httpdocs/app/Controller/MyNewController.php:3560)
[APP/Lib/AppExceptionHandler.php, line 19]

何が恋しいですか?ありがとうございました

4

2 に答える 2

3

Cake2.0の本の例外ページは一読の価値があります。

これが私の短いテストです:

// in bootstrap.php
require(APP . 'Lib' . DS . 'MyExceptions.php');


// in /Lib/MyExceptions.php
class ServiceUnavailableException extends CakeException {

    protected $_messageTemplate = 'Test';
}

// in controller
throw new ServiceUnavailableException('Service unavailable', 503);
于 2012-11-29T08:33:51.910 に答える
0

http://api22.cakephp.org/class/cake-response#method-CakeResponsestatusCode

ステータスコードを設定できます。

于 2012-11-27T18:28:35.893 に答える