symfony形式的两个问题

symfony形式的两个问题,symfony,symfony-2.1,symfony-forms,Symfony,Symfony 2.1,Symfony Forms,我创建了一个简单的表单,允许用户输入评论。但我想要实现的是为特定用户(比如用户id)保存到数据库中的注释。我不知道如何做到这一点。以下是我所做的: function some Controller(){ $baza = new baza(); $em = $this->getDoctrine()->getManager(); $em->persist($baza); $comment = $this->createFormBuilder

我创建了一个简单的表单,允许用户输入评论。但我想要实现的是为特定用户(比如用户id)保存到数据库中的注释。我不知道如何做到这一点。以下是我所做的:

function some Controller(){
    $baza = new baza();

    $em = $this->getDoctrine()->getManager();
    $em->persist($baza);

    $comment = $this->createFormBuilder($baza)
                ->add('comment', 'text')
                ->getForm();

    if ($request->getMethod() == 'POST') {
        $comment->bind($request);
        if ($comment->isValid()) {
            $em->flush();
            echo "your comment have been submited";
        }

    return $this->render('AcmeWebBundle:Default:index.html.twig'
        ,array('users'   => $users
              ,'count'   => $total
              ,'comment' => $comment->createView()
    ));
}
但通过这种方式,不会为特定用户保存注释,而是在数据库中创建新行:/

此外还有细枝代码:

  {% extends 'AcmeWebBundle:Default:master.html.twig' %}
{% block strana %}
<h3>Total users: {{ count }} </h3>
{% endblock %}
{% block body %}
<h1> Recently booked</h1><br></br>
{% for user in users %}
<strong><em>{{ user.username}}</em></strong><p> From : <b>{{ user.from }}</b> To : <b>{{ user.to }}</b><br></br>
Car: <b>{{ user.car}}</b> &nbsp;Leaving on : <b>{{ user.date }}</b><br><br>
Price: <b>{{ user.price }} </b><br></br>
Comments:<br></br> {{ user.comment }} //* first to display all the comments, and than add another one *//
<br><br>

    <form action="{{ path('acme_web_homepage') }}"  method="post" {{ form_enctype(comment) }}>
        {{ form_widget(comment) }}{{ form_widget(comment['comment']) }}
     {{ form_rest(comment) }}

        <input type="submit" value=" New Comment" />
    </form>

    <br><br>-------------------------------
    </p>
    {% endfor %}{% endblock %}
{%extends'AcmeWebBundle:Default:master.html.twig%}
{%block strana%}
用户总数:{{count}
{%endblock%}
{%block body%}
最近预订的

{users%%中的用户为%s} {{user.username}从:{{user.From}到:{{user.To}

汽车:{{user.Car}}出发日期:{{user.date}

价格:{{user.Price}}

注释:

{{user.comment}}/*首先显示所有注释,然后添加另一条注释*//

{{form_widget(comment)}{{{form_widget(comment['comment'])} {{form_rest(comment)}

-------------------------------

{%endfor%}{%endblock%}
此外,对于第一个用户,注释正文的空字段仅显示一次。。。谢谢各位。

与第1项相关:

form->bind($request);
将表单中的数据放入实体中;因此,绑定后需要坚持。尝试:

    $baza = new baza();

    $em = $this->getDoctrine()->getManager();
    $em->persist($baza);

    $comment = $this->createFormBuilder($baza)
                    ->add('comment', 'text')
                    ->getForm();

    if ($request->getMethod() == 'POST') {
    $comment->bind($request);

    if ($comment->isValid()) {
        $em->persist($baza);        // Lighthart's change
        $em->flush();
        echo "your comment have been submited";
    }
此外,不清楚为什么要持久化空对象,但这样做显然不是一个坏主意

如果看不到控制器代码,则无法解决第二项问题,我建议您提交一个新问题,以便串扰不会稀释答案。

与第1项相关:

form->bind($request);
将表单中的数据放入实体中;因此,绑定后需要坚持。尝试:

    $baza = new baza();

    $em = $this->getDoctrine()->getManager();
    $em->persist($baza);

    $comment = $this->createFormBuilder($baza)
                    ->add('comment', 'text')
                    ->getForm();

    if ($request->getMethod() == 'POST') {
    $comment->bind($request);

    if ($comment->isValid()) {
        $em->persist($baza);        // Lighthart's change
        $em->flush();
        echo "your comment have been submited";
    }
此外,不清楚为什么要持久化空对象,但这样做显然不是一个坏主意


第二个问题如果看不到控制器代码就无法解决,我建议您提交一个新问题,这样相声不会稀释答案。

真的谢谢您,Lighthart。您是否将问题的后半部分发布到其他地方了?我决定使用facebook添加评论。无论如何谢谢你。真的谢谢你,莱特哈特。你把问题的后半部分发到另一个地方了吗?我决定用facebook添加评论。无论如何,谢谢你。