2012-12-15 30 views
6

सोनाटाएडमिनबंडल configureFormFields देता है जब आप Admin कक्षा का विस्तार करते हैं।सोनाटा एडमिन बंडल कॉन्फ़िगरेशनफॉर्मफिल्ड्स में मौजूदा सिम्फनी फॉर्म टाइप का उपयोग कैसे करें?

वह विधि FormMapper कक्षा लेती है।

जिस इकाई के लिए मैंने इस वर्ग को बनाया है, उसके लिए मैंने पहले से ही सिम्फनी फैशन में FormType कक्षा बनाई है।

FormMapper का उपयोग कर फ़ॉर्म गुणों को फिर से परिभाषित करने के बजाय मैं उस वर्ग का उपयोग कैसे कर सकता हूं?

+0

configureFromFields वर्ष फैशन सार्वजनिक समारोह buildForm (FormBuilderInterface $ बिल्डर, सरणी $ विकल्प) { $ निर्माता के रूप में एक ही -> जोड़ने ('first_name') – Liutas

उत्तर

1

कुछ की तरह:

public function configureFormFields(FormMapper $formMapper) 
{   
    $form = new ReviewFormType(); 
    $form->buildForm($formMapper->getFormBuilder(),array()); 
} 
0

मैं आज ठीक उसी बात के लिए था (एक कस्टम प्रपत्र प्रकार परिभाषित किया और सोनाटा में उपयोग करने की कोशिश की) एक साफ रास्ता खोजने के घंटे के बाद, मैं इस के साथ आया था:

formMapper->add('your_field', new YourType($your_params), array(     
       ), array('type' => 'form')) 
अपने कस्टम फ़ील्ड प्रकार और

साथ

अपने क्षेत्र के नाम के साथ your_field बदलें,

अपने क्षेत्र के निर्माता के मानकों के साथ

$your_params,

चौथे पैरामीटर array('type' => 'form') बहुत महत्वपूर्ण है, यह क्या आपके प्रपत्र टाइप के बारे में सोनाटा बताता है वास्तव में (सोनाटा अभ्यस्त अपने प्रकार की वस्तु से स्वचालित रूप से निर्धारित) अपने कस्टम क्षेत्र form प्रकार फैली (है यह अपने स्वयं के फ़ील्ड के साथ एक एम्बेडेड फॉर्म है) इसलिए मैं निर्दिष्ट करता हूं कि, यदि आपका प्रकार कुछ और बढ़ाता है तो उसे निर्दिष्ट करें, और उम्मीद है कि यह ठीक काम करेगा।