2015-06-27 2 views
1

Я работаю над своим проектом Symfony 2, и я занимаюсь веточкой одной из моих форм. Я хочу знать, как проверить, является ли выбор в моей форме как минимум одним вариантом.Получить контент моего выбора в twig

Моя форма выглядит следующим образом:

<?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» (это французский для add). Я ранее использовал для передачи списка моих проектов, которые я получил с другой функцией, и моя форма просто добавила select, если был хотя бы проект, но мне сказали, что лучше использовать поле типа сущности. Использование поля типа объекта может привести к выбору поля выбора без какой-либо опции. Если это произойдет, я не хочу отображать кнопки выбора и две следующие кнопки.

Итак, я думаю, что лучший способ - проверить, содержит ли выбор, по крайней мере, один параметр, а если нет, не добавляйте эту часть формы в свой шаблон. Как мне это сделать?

ответ

Смежные вопросы