web-dev-qa-db-ja.com

Symfony2で404エラーをシミュレートするにはどうすればよいですか?

だから私は404エラーをシミュレートする方法を探しています、私はこれを試しました:

throw $this->createNotFoundException();  

この

return new Response("",404);

しかし、どれも機能しません。

40
Rachid Oussanaa

ソリューションはSymfony2のドキュメントで見つけることができます:

http://symfony.com/doc/2.0/book/controller.html

エラーと404ページの管理

public function indexAction()
{
    // retrieve the object from database
    $product = ...;
    if (!$product) {
        throw $this->createNotFoundException('The product does not exist');
    }

    return $this->render(...);
}

ドキュメントには短い情報があります:

「createNotFoundException()メソッドは特別なNotFoundHttpExceptionオブジェクトを作成し、最終的にSymfony内で404 HTTP応答をトリガーします。」

use Symfony\Component\HttpKernel\Exception\NotFoundHttpException

私のスクリプトでは、次のようにしました。

use Symfony\Component\HttpKernel\Exception\NotFoundHttpException

/**
 * @Route("/{urlSlug}", name="test_member")
 * @Template()
 */
public function showAction($urlSlug) {
    $test = $this->getDoctrine()->.....

    if(!$test) {
        throw new NotFoundHttpException('Sorry not existing!');
    }

    return array(
        'test' => $test
    );
}
82
René Höhle