ユーザーがコメントを入力できるシンプルなフォームを作成しました。しかし、私が達成したいのは、特定のユーザーのデータベースにコメントを保存することです(ユーザー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> 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 %}
また、コメント本文の空のフィールドは、最初のユーザーに対して一度だけ表示されます... ありがとうございます。