我正在使用Symfony2,并且在调用createNotFoundException()时它没有显示错误。 它只是显示一个空白的白页。
这是我的代码抛出异常:
if(!$product){
throw $this->createNotFoundException('The product does not exist');
}
我班级的标题使用以下内容:
<?php
namespace WIC\ProductBundle\Controller;
use WIC\SecurityBundle\Controller\AuthorizationController;
use WIC\ProductBundle\Entity\Product;
use Doctrine\Tests\Common\Annotations\Null;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Validator\Constraints as Assert;
use Doctrine\ORM\Tools\Pagination\Paginator;
use Symfony\Component\Security\Acl\Domain\ObjectIdentity;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Symfony\Component\Security\Core\Exception\AccessDeniedException;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Response;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
class ProductController extends AuthorizationController
{
/**
* @Route("/foo/", name="foo_bar")
* @Template()
*/
public function fooAction(Request $request)
{
$record = $em->getRepository('WICProductBundle:Product')->find(100000);
if(!$record){
throw new NotFoundHttpException("Test, This Is Not Valid");
}
}
}
现在我也遇到了这个错误:
ClassNotFoundException:尝试从/Applications/MAMP/htdocs/ffss/src/WIC/ProductBundle/Controller/ProductController.php第43行中的命名空间“WIC \ ProductBundle \ Controller”加载类“createNotFoundException”。你需要“使用“来自另一个名称空间?”
[03-Oct-2014 04:11:32 Europe / Paris] PHP致命错误:在/ Applications / MAMP / htdocs / ffss / src / WIC / ProductBundle /中找不到类'WIC \ ProductBundle \ Controller \ createNotFoundException'第43行的Controller / ProductController.php [03-Oct-2014 04:12:50 Europe / Paris] PHP致命错误:/ Applications / MAMP / htdocs / ffss / src / WIC / ProductBundle / Controller / ProductController中找不到类'WIC \ ProductBundle \ Controller \ createNotFoundException'第43行的.php
我将这个名称空间切换到了这一点,并且就php日志错误而言,一切正常,仍然无法拉出symfony错误页面。
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
所有其他错误都显示为btw,只显示任何异常错误。谢谢你的帮助!
答案 0 :(得分:0)
对于您的新错误,而不是
throw new createNotFoundException("Test, This Is Not Valid");
你应该使用
throw new NotFoundHttpException("Test, This Is Not Valid");
我仍然没有为你原来的问题找到足够的背景。
答案 1 :(得分:0)
当发生php致命错误时,它不会为symfony创建任何事件来处理。为了在您的页面上出现php致命错误,您需要启用调试,这使symfony ro注册了一个关闭功能。您使用的是哪个版本的symfony?如果你使用2.2以上的symfony版本来启用调试只需要放置$ kernel = new AppKernel(&#39; dev&#39;,true);是不足够的。在它上面放置下面的行,以正确显示任何PHP错误(空白页的最可能的原因)。 \的Symfony \元器件\调试\调试::启用(1); 希望这有帮助
答案 2 :(得分:0)
从Symfony网站(http://symfony.com/doc/current/book/controller.html#managing-errors-and-404-pages)尝试教程时遇到类似的问题。
但后来我注意到我忘了用Controller扩展我的班级
class HelloController extends Controller
之后我能够显示自定义404错误。