मैं अपने फॉर्म में इकाई पसंद सूची का उपयोग कर रहा हूं। मैं केवल विशिष्ट इकाइयों का उपयोग करना चाहता हूं (उदाहरण के लिए: केवल उपयोगकर्ता जो संबंधित हैं) तो, नियंत्रक में, मुझे इन समूहों को मिल रहा है, और उन्हें formBuider
में पास करने का प्रयास कर रहा है।सिम्फनी 2 - फॉर्मबिल्डर को डेटा कैसे पास करें?
नियंत्रक:
/.../
$groups = $em->getRepository('VendorMyBundle:Group')->getUserGroups($user);
$form = $this->createForm(new Message($groups), $message);
/.../
तो
, अब क्या? फॉर्मबिल्डर में इसका उपयोग कैसे करें? समूहों की पारित सरणी का उपयोग करने के लिए इस पंक्ति को कैसे बदला जाए?
->add('group','entity',array('class' => 'Vendor\MyBundle\Entity\Group', 'label'=>'Group:'))
या अन्य तरीके से:
class MessageType
{
/.../
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('group','entity',
array(
'class' => 'Vendor\MyBundle\Entity\Group',
'property' => 'name',
'query_builder' => function ($repository) {
$qb = $repository->createQueryBuilder('group');
$qb->add('where', 'group.administrator = :user');
$qb->setParameter('user', $user->getId());
return $qb;
},
'label' => 'Group'
)
)
// Continue adding fields
;
}
/.../
}
तो मैं कैसे वस्तु $ उपयोगकर्ता प्रपत्र बिल्डर में उपयोग करने के लिए मिल सकता है?
use Doctrine\ORM\EntityRepository;
...
$message = new Message();
$form = $this->createFormBuilder($message)
->add('group', 'entity', array(
'class' => 'Vendor\MyBundle\Entity\Group',
'label'=>'Group:',
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('g')
->... // whatever you want to do
}
))
->getForm();
आप Doctrine manual में और के लिए विकल्पों के बारे में क्वेरी बिल्डर के बारे में अधिक जानकारी पा सकते हैं: (उपयोगकर्ता $ वर्तमान में लॉग इन उपयोगकर्ता का प्रतिनिधित्व करते हैं)
मैंने एक ही प्रश्न पूछा: - http: // stackoverflow।कॉम/प्रश्न/7807388/पास-डेटा-से-नियंत्रक-टू-टाइप-सिम्फनी 2 बैक्टरीज का समाधान वास्तव में अच्छा है !!! : thumbsup: – xeon
यदि आपको प्रश्नों को निष्पादित करने की आवश्यकता है, तो दृश्य प्रस्तुत करने के लिए एपीआई कॉल आदि बनाएं, फिर आप इसे गलत कर रहे हैं। यदि यह एक बाधा है कि ढांचे पर सिम्फनी स्थान (फॉर्म बिल्डर को मनमाने ढंग से डेटा प्रदान करने का कोई अन्य तरीका नहीं है) तो उन पर शर्म आती है। यह नियंत्रक की स्पष्ट रूप से परिभाषित नौकरी है। – eggmatters