找到解決方案:我沒有在表單的構建器中指定方法。添加setMethod(「POST」)修復了我的問題。Symfony2表單不會提交。表單名稱不在請求中
我最近開始使用Symfony2(並學習TDD,猜猜我不喜歡它很容易),並且從今天早上開始一直在使用我的表單。它曾經工作,但現在我似乎無法得到一個工作的迴應。
我設法找出了一點錯誤。 Symfony的獲取對HttpFoundationRequestHandler類的一個點,它檢查是否應處理請求或沒有(在第56行開始)和第59行是它打破
} elseif ($request->request->has($name) || $request->files->has($name)) {
所以,如果我得到這個權利,因爲它無法在請求中找到表單的名稱,它簡單地忽略它,認爲該表單從未提交過。我沒有得到的是如何可能,因爲唯一可以導致頁面更改/刷新的是用戶按下表格的「提交」按鈕...
如果您有任何人有建議或簡單指出我的問題可能是什麼我會非常感謝!
因爲我對此感覺很瞎,所以我會在我的TrinomeClientVideoUploadForm類和我的Controller內顯示並處理表單請求的函數下面發佈。
這這裏,如果課堂上,我用它來構建形式:
<?php
namespace Trinome\WebVideoViewBundle\Model\Forms;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
class TrinomeClientVideoUploadForm extends AbstractType
{
private $name;
public function __construct($name = "trinome_client_video_upload")
{
$this->name = $name;
}
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add("client", "text")
->add("video", "file")
->add("upload", "submit");
}
/**
* {@inheritdoc}
*/
public function getName()
{
return $this->name;
}
}
這是處理網頁在我的(唯一的)控制器的功能:
/**
* @Route("/")
* @Template()
*/
public function indexAction(Request $request)
{
$uploadVideoForm = new UploadVideoFormDataSet();
$form = $this->createForm(new TrinomeClientVideoUploadForm(), $uploadVideoForm);
$form->handleRequest($request);
if ($form->isValid())
{
// It never gets here anyways, so I removed it for this post.
}
return array(
"form" => $form->createView(),
);
}
嫩枝文件,其中我呈現形式:
{% extends "@BaseViews/base.html.twig" %}
{% block title %}Outil d'upload vidéo Trinome{% endblock %}
{% block stylesheets %}
{% stylesheets '@TrinomeWebVideoViewBundle/Resources/public/css/*' filter='cssrewrite' %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
{% endblock %}
{% block body %}
<div id="wrapper">
<header>
{% block header %}
{% image '@logo_trinome' %}
<img src="{{ asset_url }}" alt="Logo Trinome" />
{% endimage %}
{% endblock %}
</header>
<div id="content">
{% block content %}
<h1>Connection</h1>
{{ form(form) }}
{% endblock %}
</div>
</div>
{% endblock %}
顯示呈現表格的小枝 –
用小枝文件編輯我的文章。 – gCardinal