У меня есть форма, где пользователь вводит данные.Затем, когда они нажимают кнопку отправить, эти данные будут сохранены в базе данных.
Единственное, что он этого не делает.Что происходит, так это то, что при нажатии кнопки «Отправить» страница перезагружается, и все данные, введенные в форму, все равно будут отображаться.Я иду, чтобы проверить базу данных, и записи не были обновлены.
Нет ошибок, но согласно профилировщику, при загрузке страницы выполняется три оператора SQL.Все три из них являются операторами SELECT, а не одним оператором INSERT.
Вот код страницы в контроллере (включая инструкцию "INSERT"):
public function addAction(Request $request)
{
$pageadd = new Content();
$form = $this->createForm(new PageAdd(), $pageadd);
$request = $this->getRequest();
if ($request->getMethod() == 'POST') {
$form->bindRequest($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getEntityManager();
$em->persist($pageadd);
$em->flush();
return new Response('Created page id '.$pageadd->getId());
}
}
return $this->render('ShoutAdminBundle:Default:pageadd.html.twig', array(
'form' => $form->createView()
));
}
Здеськод для формы (некоторые поля были опущены из-за нехватки места. Но все они идентичны):
<form action="{{ path('ShoutAdminBundle_adminpageaddpost') }}" method="post" {{ form_enctype(form) }} class="blogger">
<p class="row">
{{ form_label(form.id, 'ID*', { 'attr': {'class': 'title'} }) }}
{{ form_errors(form.id) }}
{{ form_widget(form.id, { 'attr': {'class': 'textfield'}}) }}
</p>
<p class="row">
{{ form_label(form.title, 'Title*', { 'attr': {'class': 'title'} }) }}
{{ form_errors(form.title) }}
{{ form_widget(form.title, { 'attr': {'class': 'textfield'}}) }}
</p>
<p class="row">
<input type="submit" value="Save This Page" class="savebutton" />
</p>
</form>
Если вам понадобится больше кода, я предоставлю их.Я думаю, что в этих двух фрагментах кода проблема кроется.
Приветствия!