在Symfony 2中渲染单个表单元素

时间:2012-10-24 14:21:51

标签: symfony

我无法在Symfony 2表单的树枝模板中渲染单个表单字段。在下面的示例中,我只是尝试渲染first_name表单字段。

此外,form_errors永远不会呈现任何内容。

这是我的Form对象:

namespace ABC\WebsiteBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;

class LoanApplication extends AbstractType
{
  public function buildForm(FormBuilderInterface $builder, array $options)
  {
    $builder->add('first_name', 'text', array('required' => true));
  }

  public function getName()
  {
    return 'LoanApplication';
  }

  public function getDefaultOptions(array $options)
  {
    return array(
        //'data_class'      => 'Acme\TaskBundle\Entity\Task',
        'csrf_protection' => true,
        'csrf_field_name' => '_token',
        // a unique key to help generate the secret token
        'intention'       => 'loan_application',
    );
  }
}

这是控制器:

namespace ABC\WebsiteBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use JML\WebsiteBundle\Form\LoanApplication;
use JML\WebsiteBundle\QuickBase as QuickBase;

class ApplyController extends Controller
{
  public function indexAction()
  {
    $form = $this->createForm(new LoanApplication());
    return $this->render('ABCWebsiteBundle:Apply:index.html.twig', array(
            'form' => $form->createView(),
        ));

    if ($request->getMethod() == 'POST') {
        $form->bindRequest($request);

        if ($form->isValid()) {
            // perform some action, such as saving the task to the database

            //return $this->redirect($this->generateUrl('task_success'));
        }
    }
  }
}

枝条:

<form action="{{ path('apply') }}" method="post" {{ form_enctype(form) }}>
<pre>
{{ dump(form_errors(form)) }} // always empty
</pre>
<div>
    {{ form_label(form.first_name) }} // this renders
    {{ form_widget(form.first_name) }} //empty
    {{ form_row(form.first_name) }}  //empty
</div>
  <input type="submit" formnovalidate/>
</form>

0 个答案:

没有答案