我创建了文件
/myapp/app/Resources/TwigBundle/views/Exception/error.html.twig
有了这个内容
{% extends 'MyappBundle::base.html.twig' %}
{% block body %}
<div>
<h1>Error</h1>
<p>The server returned a "{{ status_code }} {{ status_text }}".</p>
</div>
{% endblock %}
这就是我在我的应用中扩展所有模板的方式,它没有任何问题。但它不适用于错误处理。我总是收到此错误消息:
致命错误:未捕获异常'Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException',消息'无法找到实体'。在C:\ xampp \ htdocs \ myapp \ vendor \ symfony \ symfony \ src \ Symfony \ Bundle \ FrameworkBundle \ Controller \ Controller.php:218堆栈跟踪:#0 C:\ xampp \ htdocs \ myapp \ src \ myapp \ MyappBundle \ Controller \ AddressController.php(207):Symfony \ Bundle \ FrameworkBundle \ Controller \ Controller-&gt; createNotFoundException('无法找到...')#1 [内部函数]:myapp \ MyappBundle \ Controller \ AddressController-&gt; showAction('= k21RBNjM')#2 C:\ xampp \ htdocs \ myapp \ app \ bootstrap.php.cache(3020):call_user_func_array(Array,Array)#3 C:\ xampp \ htdocs \ myapp \ app \ bootstrap。 php.cache(2982):Symfony \ Component \ HttpKernel \ HttpKernel-&gt; handleRaw(Object(Symfony \ Component \ HttpFoundation \ Request),1)#4 C:\ xampp \ htdocs \ myapp \ app \ bootstrap.php.cache (3131):Symfony \ Component \ HttpKernel \ HttpKernel-&gt; handle(Object(Symfony \ Component \ HttpFoundation \ Request),1,true)#5 C:\ xampp \ htdocs \ myapp \ app \ bootstrap.php.cache( 2376)在第2998行的C:\ xampp \ htdocs \ myapp \ app \ bootstrap.php.cache
这就是我抛出404错误的方法:
$em = $this->getDoctrine()->getManager();
$entity = $em->getRepository('MyBundle:Entity')->find($id);
if (!$entity) {
throw $this->createNotFoundException('Unable to find entity.');
}
我正在使用Win7与PHP v5.5.6和Symfony v2.6.3。在我的生产服务器上运行时,我得到一个空白页面(根本没有源代码)。而且 - 当然 - 我已经清理了我的缓存。
当我尝试preview my error page in dev mode时,收到以下错误消息:
合并过滤器仅适用于数组或散列; TwigBundle中给出的NULL和数组:异常:第1行的error.html.twig。
我根本不使用twig_array_merge
。
这是由path()
调用引起的,我将_route_params
和我_locale
中的footer.html.twig
合并到我的MyappBundle::base.html.twig
文件中:< / p>
<a href="{{ path(app.request.get('_route'), app.request.get('_route_params')|merge({'_locale': lang})) }}"><span class="flag-icon flag-icon-{{ lang }}"></span> {{ lang }}</a>
除错误模板外,它适用于我的所有模板。这里有什么问题,我该如何解决?