2012-05-14 18 views
7

सिम्फनी 1 में admin_double_list नामक फ़ॉर्म विजेट के रूप में था। इसने असंबद्ध और एसोसिएटेड नामक दो चुनिंदा क्षेत्रों को जन्म दिया। यह एक सूची से दूसरे सूची में आइटम जोड़ने के लिए बटन भी उत्पन्न करता है।कई से कई रिश्तों के लिए सिम्फनी 2 फॉर्म विजेट

क्या Symfony2 में इसे पूरा करने का कोई आसान तरीका है? या हो सकता है कि कई अन्य उपयोगकर्ता के अनुकूल तरीके से कई से अधिक संबंधों को संपादित किया जा सके?

documentation में कई से कई रिश्ते के लिए केवल चार विजेट हैं और उनमें से कोई भी बहुत अच्छा नहीं है जब संपादित करने के लिए बड़ी संभावनाएं हैं।

उत्तर

14

आप entity form field के साथ कई से अधिक रिश्तों को आसानी से प्रबंधित कर सकते हैं। उदाहरण के लिए यदि UserGroup के साथ एक बहुत-से-अनेक संबंध के रूप में, तो आप बस बिल्डर को जोड़ सकते हैं:

$builder->add('groups', 'entity', array(
    'multiple' => true, // Multiple selection allowed 
    'expanded' => true, // Render as checkboxes 
    'property' => 'name', // Assuming that the entity has a "name" property 
    'class' => 'Acme\HelloBundle\Entity\Group', 
); 

यह एक चेकबॉक्स सूची जहां जुड़े संस्थाओं चिह्नित कर रहे हैं (चयनित) जबकि असंबद्ध नहीं हैं उत्पन्न होगा। expanded से false पर सेट करना आप इसे एक चुनिंदा तत्व (एकाधिक एक) के रूप में प्रस्तुत कर सकते हैं।

आप रास्ता है कि समूहों, प्राप्त किए गए हैं आप भी एक query_builder विकल्प पारित कर सकते हैं या तो QueryBuilder उदाहरण या एक बंद जहां $erEntityRepository

'query_builder' => function(\Doctrine\ORM\EntityRepository $er) { 
    $qb = $er->createQueryBuilder('g'); 

    return $qb->orderBy('g.name', 'DESC); 
} 

भी collection form type पर और अधिक जटिल परिदृश्य देखने के लिए है अनुकूलित करने के लिए की जरूरत है, लेकिन आपको jQuery/जावास्क्रिप्ट से निपटना होगा।

+0

यहां समस्या यह है कि संपादन पृष्ठ के लिए उपयोग करने योग्य और उपयोगकर्ता के अनुकूल होने के लिए बहुत से चेकबॉक्स होंगे। यही कारण है कि मैं सिम्फनी 1 के समान कुछ ढूंढ रहा था। – teemup

+0

यह मेरे लिए अभी के लिए करेगा। मैं उम्मीद कर रहा था कि 'अजाक्स' के लिए रास्ता तलाशने की उम्मीद है ताकि उपयोगकर्ता 'अन्य जोड़ें' और हिट कर सकें, जब तक कि वे उन सभी संगठनों को उठाए, जब तक वे चाहते थे। –

+0

एमटीएम फ़ील्ड किस तरह से प्रदर्शित किया जा सकता है, परीक्षा के लिए - डिफॉल्ट कॉलम की बजाय चेकबॉक्स की एक पंक्ति में डिस्प्ले इकाइयां आईडी? – olga

संबंधित मुद्दे