0

私はkohana3.2を使用していますが、ページが存在しない場合、kohana-errorモジュールは正常に機能しています。しかし、私にはこのような状況があります。ページは存在しますが、データが存在しないため、データは送信されません。ルートパラメータを使用してデータベースをチェックしています。

だから私はこれをしました、

if($response )
    {
       return $response; 
    } else {
       throw new HTTP_Exception_404('Page Not Found');
    }

データが返される場合は、「ページが見つかりません」を作成します。これは、kohana-errorモジュールによってキャッチされると思いますが、そうではありません。これは正しいアプローチですか?

4

1 に答える 1

0

index.phpで、次の操作を行います。

$request = Request::factory();

try
{
  $response = $request->execute();

  if (!$response->body())
  {
    throw new HTTP_Exception_404();
  }
}
catch (Exception $exc)
{
   if ($exc instanceof HTTP_Exception_404)
   {
      $response = Request::factory('your/404error/controller')->execute();
   }
   else
   {
      // rethrow exception
      throw $exc;
   }
}

echo
  $response
  ->send_headers()
  ->body();

そうすれば、各 HTTP 例外に対してコントローラーを実行するか、すべての例外 (50x および 40x エラー) に対してすべての 404 ページをキャッチすることができます。

于 2012-12-28T20:37:11.143 に答える