我正在研究我的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是否包含至少一个选项,如果不包含,请不要在我的模板中添加该部分表单。我该怎么做?
答案 0 :(得分:2)