获取我在树枝中选择的内容

时间:2015-06-27 23:04:58

标签: php forms symfony twig

我正在研究我的Symfony 2项目,我正在做我的一个表格的树枝。我想知道如何检查我的表单中的select是否至少是一个选项。

我的表单如下:

<?php

namespace AdminBundle\Form;

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

Class ProjetsType extends AbstractType
{
    public function buildForm(FormBuilderInterface $constructeur, array $options)
    {
        $constructeur
        ->add('Ajouter', 'submit', array('label'=>'Ajouter un projet'))
        ->add('Projet', 'entity', array(
            'label'=>false,
            'class'=>'PublicBundle\Entity\Projet',
            'property'=>'id'
        ))
        ->add('Modifier', 'submit')
        ->add('Supprimer', 'submit');

        /*This is the way I do it if I pass my projects as a parameter*/
        /*if(!empty($options['choix']))
        {
            $constructeur
            ->add('Projet', 'choice', array('label'=>false, 'choices'=>$options['choix']))
            ->add('Modifier', 'submit')
            ->add('Supprimer', 'submit');
        }*/
    }

    public function getName()
    {

        return 'projets_type';

    }

    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'choix' => null,
        ));
    }
}

我的模板看起来像这样

{{ form_start(formulaire) }}
    {{ form_widget(formulaire.Ajouter) }}
    {% if formulaire.Projet is defined %}
        {{ form_widget(formulaire.Projet) }}
        {{ form_widget(formulaire.Modifier) }}
        {{ form_widget(formulaire.Supprimer) }}
    {% endif %}
{{ form_end(formulaire) }}

我的目标是,如果没有任何项目,只会出现'ajouter'(它的法语为添加)按钮。我以前曾经传递过我的项目列表,我用其他函数,我的表单只是添加了select,如果至少有一个项目,但我被告知最好使用实体类型字段。使用实体类型字段可能会导致选择字段没有任何选项。如果发生这种情况,我希望不显示选择和以下两个按钮。

所以我想最好的方法是检查select是否包含至少一个选项,如果不包含,请不要在我的模板中添加该部分表单。我该怎么做?

1 个答案:

答案 0 :(得分:2)