सिम्फनी 2.0 में, फ़ॉर्म में एक-से-एक एसोसिएशन का उपयोग करके ड्रॉप डाउन सूची कैसे बनाएं? क्या आप लोग अच्छे उदाहरण दे सकते हैं?फॉर्म में एक-से-एक एसोसिएशन?
उत्तर
मैं आपके प्रश्न का उत्तर देने की कोशिश करूंगा जिस तरह से मैं इसे समझता हूं। मान लें कि मेरे पास Faculty
ऑब्जेक्ट एक University
ऑब्जेक्ट से जुड़ा हुआ है। तो एक संकाय बनाने या संपादित करने के लिए प्रयुक्त रूप में, मैं डेटाबेस में सभी विश्वविद्यालयों का एक कॉम्बो बॉक्स प्रदर्शित करता हूं और उपयोगकर्ता उनमें से एक को चुनता है। एक विशेष सिम्फनी फ़ील्ड प्रकार है जो वास्तव में यह करता है: इकाई प्रकार।
// Application\AcmeBundle\Form\Type\FacultyType
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('name');
$builder->add('university', 'entity', array(
// The class of the entity used as a combo box item
'class' => 'AcmeBundle:University',
// The property of the entity displaying the entity as text
'property' => 'name',
// The query builder used to populate the combo box, accepts
// a QueryBuilder object or a \Closure like below
'query_builder' => function(EntityRepository $repository) {
// This will return a query builder selecting all universities
return $repository->createQueryBuilder('u');
}
));
}
नोट:: अन्य संपत्तियों इकाई फ़ील्ड प्रकार के लिए सेट किया जा सकता है कि कर रहे हैं, मैं तुम्हें लेने के लिए आमंत्रित नीचे buildForm
विधि है कि मैं संकाय प्रपत्र बनाने के लिए इस्तेमाल मेरी FacultyType
वस्तु में उपयोग के कोड है इस पर अधिक जानकारी के लिए इस page पर एक नज़र डालें।
प्रस्तुत किया गया, यह डेटाबेस में सेट किए गए सभी विश्वविद्यालयों के साथ एक कॉम्बो बॉक्स दिखाएगा। जब उपयोगकर्ता फॉर्म को सहेजता है, तो विश्वविद्यालय को एक सेटटर के माध्यम से फ़ॉर्म के लिए संकाय संकाय वस्तु को सौंपा जाता है। आप शायद कॉम्बो बॉक्स की बजाय ड्रॉप-डाउन सूची प्रस्तुत कर सकते हैं। यदि आपको एकाधिक इकाइयों का चयन करने की आवश्यकता है, तो फ़ील्ड प्रकार इकाई का 'multiple'
विकल्प उपयोगी हो सकता है।
यह कहा जा रहा है कि मैंने जो उदाहरण दिखाया है वह एक-से-वन संबंध नहीं है बल्कि Faculty
ऑब्जेक्ट के लिए कई से एक है और University
ऑब्जेक्ट के लिए एक-से-कई है। एक से एक संबंध एक संबंध की तरह कुछ और होगा जहां University
में अद्वितीय Address
है। इस मामले में, कॉम्बो बॉक्स उपयोगी नहीं होगा क्योंकि विश्वविद्यालय में केवल एक एड्रेस हो सकती है, इसलिए उप-फॉर्म अधिक उपयुक्त होगा। यदि इसमें कई पते हैं, तो यह विश्वविद्यालय और उसके संकाय के बीच संबंधों की तरह एक से कई संबंध बन जाता है।
सुनिश्चित नहीं है कि यह आपके प्रश्न का सही उत्तर देगा लेकिन मुझे उम्मीद है कि यह आपको अंतिम समाधान में ले जाएगा।
सादर, मैट
आप Symfony2 में इकाई क्षेत्र प्रकार का उपयोग करने की जरूरत है। एक अच्छा उदाहरण http://symfony.com/doc/current/reference/forms/types/entity.html
पर पाया जाता है क्या आप जो चाहते हैं उसके बारे में अधिक जानकारी प्रदान कर सकते हैं? – Riley
मैं एक-से-एक संबंधित तालिका से combobox बनाना चाहता हूँ। – Zeck