2013-07-03 12 views
9

1) Symfony yöntemi var mı?Symfony 2: Bir seçim için uygun seçenekleri bulun Saha Türü

Ben örneğin, bazı seçim alanları ile temel bir formu (veritabanına eşlemediyseniz) var

: Ben nasıl

$builder->add('civility', 'choice', array('choices'=> array('m' => 'M.', 'mme' => 'Mme', 'mlle' => 'Mlle'))) 

- formundan sonra submited edildi - eylem (veya , daha da iyisi, şablonda), sunulan form yerine, seçeneğin etiket değerini almak ister misiniz?

Ben $form->get("civility")->getChoiceLabel($form->get("civility")->getData())

gibi bir şey düşünüyordum (bu durumda, yerine "m" ait şablonda "M." işlemek için mümkün istiyorum) Ama bulamadık belgelerindeki böyle bir şey (Symfony1'de böyle bir şey vardı).

2) Gerçekten değilse, bunu yapmanın en iyi yolu nedir?

private $choices = array("civility" => array('m' => 'M.', 'mme' => 'Mme', 'mlle' => 'Mlle')); 
static public function getChoiceLabel($choice_value, $field_name) 
{ 
    return self::$choices[$field_name][$choice_value]; 
} 

static public function getChoices($field_name) 
{ 
    return self::$choices[$field_name]; 
} 

Ama sorun kullandığımız gerekmiyor ki:

Böylece ben .. formu gibi kullandığı veri Class'ta, bunu yapmak için bazı yöntemler oluşturma hakkında düşünüyordum twig şablonunda statik yöntemler (bunu form oluşturmada, buildForm yönteminde kullanabilmek ve bazı kodları çoğaltmak için Static yapmak zorundayım).

+0

Eğer '$ formunu [ 'kibarlık'] yazdırırken' Eğer aradığınız etiketleri bulamıyor ? '$ Form' –

cevap

12

Sen erişebilir bu gibi etiketler ve değerlerini choses:

$form->get('civility')->getConfig()->getOption('choices'); 

Devamı: Symfony\Component\Form\FormConfigInterface::getOption()

+0

Mükemmel 'CreateView' çağırmadan önce ve sonra alanı yazdırmayı deneyin, tam olarak aradığım şey bu! API'da bile dokümantasyonda bulmak oldukça zor… Nasıl oluyor da genellikle böyle şeyler oluyor? – Bonswouar

+0

IDE'de otomatik tamamlama özelliği (phpstorm). Bu sınıf için tüm yöntemleri araştırdım ve ihtiyacım olanı buldum. Ve tabii ki API dokümantasyonu bana da yardımcı oluyor. – Hast