Symfony 3 - 无法在视图上显示表单

时间:2017-11-11 11:08:07

标签: symfony

我试图将表单传递给视图,但它不会显示,我收到错误500(页面加载已停止,然后,当我尝试访问另一个页面时,它会冻结)

我尝试了几个教程,包括官方的symfony文档,我总是得到同样的观点。

所以请帮帮我......(下面是我的代码)

我的控制器

<?php
namespace siteBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;

use siteBundle\Form\ContactType;
use siteBundle\Entity\Contact;


class SiteController extends Controller
{
    public function navigationAction(string $page,Request $request)
    {
        $option=array();
        if ($page=='contact')
        {
            $donnees=new Contact();
            $form=$this->createForm(ContactType::class,$donnees);
            $option['contact']=$form->createView();
        }
        return $this->render('siteBundle:Pages:'.$page.'.html.twig',$option);
    }
}
?>

我的观点

{% extends 'general.html.twig' %}

{% block description %}blabla{% endblock %}

{% block title %}blabla{% endblock %}

{% block body %}
<div class="container">
    <h1>Prendre Contact </h1>
    <p class="text-justify">
        <br>blabla
    </p>
    <br>
    <div class="row text-center">
        <div class="col-md-6">
            <p>
                <img src="{{ asset('bundles/site/img/telephone.png') }}" alt="téléphone"><br>
                <p><a href="tel:0123456789">01.23.45.67.89</a></p>
            </p>
        </div>
        <div class="col-md-6">
            <p>
                <img src="{{ asset('bundles/site/img/email.png') }}" alt="email"><br>
                <p><a href="mailto:a@b.fr">a@b.fr</a></p>
            </p>
        </div>
    </div>
    <br>
    <div class="row text-center">
        <p>
            <img class="text-center" src="{{ asset('bundles/site/img/formulaire.png') }}" alt="Formulaire"><br>
            <p>Complétez le formulaire ci-dessous</p>
        </p>
    </div>

    {% if contact is defined %}
    <div>
    {{ form_start(contact) }}
    {{ form_widget(contact) }}
    {{ form_end(contact) }}
    </div>
    {% endif %}

</div> <!-- container -->
{% endblock %}

提前感谢您的帮助

此致

4 个答案:

答案 0 :(得分:0)

确保使用dev env显示异常的堆栈跟踪。 您可以使用/app_dev.php

答案 1 :(得分:0)

我的意见,错误在:

return $this->render('siteBundle:Pages:'.$page.'.html.twig',$option);

使用:

return $this->render('SiteBundle:pages:'.$page.'.html.twig',$option);

检查你的日志! /var/logs/prod.log或error.log,您会发现错误消息

答案 2 :(得分:0)

在您的路线中,按controller

更改关键字_controller

答案 3 :(得分:0)

也许这会有所帮助: 如果我摆脱渲染行上的数组$选项(见下面的代码),绝对没有问题,页面加载正常。

return $this->render('siteBundle:Pages:'.$page.'.html.twig');

将变量传递给模板时会发生一些事情...