45

所以我正在寻找一种模拟 404 错误的方法,我尝试了这个:

throw $this->createNotFoundException();  

和这个

return new Response("",404);

但没有一个有效。

4

1 回答 1

92

您可以在 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
    );
}
于 2012-12-31T16:44:13.210 回答