का फील्ड विकल्प बदलें मूल रूप से मेरा प्रश्न है, क्या मूल रूप से एम्बेडेड के किसी फ़ील्ड का विकल्प बदलना संभव है?सिम्फनी 2 एम्बेडेड फॉर्म
समस्या को समझाने के लिए इस पर विचार करें; मैं इस तरह एक माता पिता के रूप प्रकार वर्ग है:
class FruitFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', 'text')
->add('apple', new AppleFormType())
;
}
और एक बच्चे प्रपत्र प्रकार कक्षा एक अलग बंडल में है कि और मैं संपादित करने के लिए नहीं करना पसंद करेंगे, इस तरह:
class AppleFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', 'text')
->add('qty', 'integer', array('label' => 'rubbish label')
;
}
और मैं चाहता हूँ qty
के लेबल को किसी अन्य चीज़ में बदलने के लिए, लेकिन मैं इसे केवल FruitForm
में करना चाहता हूं, हर जगह नहीं जहां AppleForm
का उपयोग किया जाता है। मैं की तरह कुछ करने के लिए सक्षम होने के लिए आशा व्यक्त की थी:
class FruitFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', 'text')
->add('apple', new AppleFormType(), array('qty' => array('label' => 'better label')))
;
}
या:
class FruitFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', 'text')
->add('apple', new AppleFormType())
;
$builder->get('apple')->get('qty')->setOption('label', 'better label');
}
लेकिन न तो इनमें से (और अन्य प्रयास के एक नंबर) सब मुझे विफल रहे हैं। setOption
विधि मौजूद नहीं है जो मैं देख सकता हूं।
क्या किसी को ऐसा करने का तरीका पता है?
धन्यवाद
$ विकल्प एस = $ फ़ील्ड-> getOptions(); मेरे लिए काम नहीं किया, हालांकि, $ फ़ील्ड-> getConfig() -> getOptions() ने चाल की है! एक बार फिर धन्यवाद ! – Steven
मेरे लिए काम नहीं करता –
मेरे लिए ठीक काम किया। @Steven आपको '$ form-> get (" field ") -> getOptions()', या उस नाम वाला फ़ील्ड अभी तक मौजूद नहीं है। – Adambean