मैं Symfony3 में एक रूप है, जो मैं प्रारंभ है - डॉक्स निम्नलिखित - अनुसरण के रूप में:Symfony3: निर्माण FormType
$form=$this->createForm(BookingType::class,$booking);
$ बुकिंग पहले से मौजूद किसी इकाई है, जो मैं संशोधित करना चाहते हैं है - लेकिन मैं चाहता हूँ इकाई के आधार पर प्रपत्र को संशोधित - जैसे:
public function buildForm(FormBuilderInterface $builder,$options) {
$builder->add('name');
if(!$this->booking->getLocation()) {
$builder->add('location');
}
}
पहले Symfony 2.8 ऐसा FormType निर्माण करने के लिए संभव हो गया था:
$form=$this->createForm(new BookingType($booking),$booking);
जो वही है जो मैं चाहता हूं :) लेकिन सिम्फनी 3 में यह विधि अपवाद फेंकता है। मैं अपने फॉर्म टाइप में एक इकाई कैसे पास कर सकता हूं?
आप इस के लिए प्रपत्र की घटनाओं का उपयोग कर सकते हैं: http://symfony.com/doc/current/components/form/ form_events.html – xabbuh
आपके फॉर्म में टाइप करें मुझे लगता है कि आप '$ entity = $ builder-> getData()' – pbenard
@ Put12co22mer2 कर सकते हैं - यह ठीक काम करता है! – cklm