namespace AppBundle\Controller;
use Symfony\Component\Debug\Exception\FlattenException;
use Symfony\Component\HttpKernel\Log\DebugLoggerInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class ExceptionController
{
protected $twig;
protected $debug;
public function __construct(\Twig_Environment $twig, $debug)
{
$this->twig = $twig;
$this->debug = $debug;
}
public function showAction(Request $request, FlattenException $exception, DebugLoggerInterface $logger = null)
{
// some action
return new Response($this->twig->render('error/template.html.twig', [
'status_code' => $exception->getStatusCode()
]
));
}
}
3条答案
按热度按时间vc9ivgsu1#
这将帮助您:
其中,我的控制器名为“DefaultController”,我有一个函数名为“indexAction()"。
下面是我的DefaultController代码:
我确实在我的环境中尝试了你所说的,直到我指定了正确的控制器设置才起作用。
编辑:
要做到这一点,需要将参数
Request $request
(with the type hint)添加到操作的方法签名中。8zzbczxx2#
我发现目前接受的答案 * 几乎 * 对Symfony 4有用,所以我要添加我的解决方案:
这就是我在Symfony 4中所做的工作:
/src/Controller/DefaultController.php
,确保有一个名为index(){}
的函数Request $request
作为第一个参数,因为一些评论建议。routes.yaml
捕获的所有url/config/routes.yaml
,添加以下内容:gxwragnw3#
您还可以覆盖异常控制器。