1
我正在开发我的Symfony 2项目,并且正在做我的一种形式的树枝。我想知道如何检查我的表单中是否至少有一个选项。获取我在树枝中选择的内容
我的形式如下:
<?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) }}
我goald是,如果没有任何项目,只有“ajouter”(这是法语添加)按钮将出现。我以前曾经通过我的项目列表,我得到了一个其他函数,而我的表单只是添加了选择,如果至少有一个项目,但我被告知最好使用实体类型字段。使用实体类型字段可能会导致没有任何选项的选择字段。如果发生这种情况,我希望不显示选择和下面两个按钮。
所以我想最好的方法是检查选择是否至少包含一个选项,如果没有,请不要在我的模板中添加表单的那部分。我怎么做?