मैं daterange
नामक symfony2 में एक कस्टम फॉर्म फ़ील्ड बनाना चाहता हूं, जो डिफ़ॉल्ट सिम्फनी दिनांक प्रकार फॉर्म फ़ील्ड को विस्तारित करेगा और तिथि सीमा (प्रारंभ तिथि और समाप्ति तिथि) को दो अलग-अलग टेक्स्ट-बॉक्स में ले जाएगा।मैं symfony2 में कस्टम फ़ील्ड प्रकार कैसे बना सकता हूं?
उत्तर
क्योंकि मैं टहनी टेम्पलेट इंजन पसंद नहीं है केवल पीएचपी templating के लिए इस उदाहरण
क्या आप की जरूरत बनाने के लिए है:
न्यू
TestBundle\Form\Extension\Core\Type\DateRangeType
जोSymfony\Component\Form\AbstractType
फैली यहाँ आप चाहिए:
ए। अपना खुद का प्राप्त करें माता-पिता, getName, buildForm विधियां
बी लिखें। getParent वापसी 'फ़ील्ड'
सी। getName वापसी 'daterange'
डी। buildForm$builder->add('start', ...)->add('end', ...)->setAttribute('widget', 'daterange')
डि (उदाहरण के रूप में config.yml) में जोड़ना है
services: form.type.daterange: class: TestBundle\Form\Extension\Core\Type\DateRangeType tags: - { name: form.type, alias: daterange }
TestBundle/Resources/views/Form/daterange_widget.html.php
में इसके लिए नए विजेट बनाएं आप उदाहरण के रूप में दिनांक विजेट ले सकते हैं।Src/vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/date_widget.html.php
config करने के लिए (उदाहरण के रूप में config.yml) जोड़ें
framework: templating: form: resources: - 'TestBundle:Form'
और nefo_x रूप में और अधिक विजेट अनुकूलन के लिए जाँच form customization कहा।
ऐसा करने में, आप src/Your/SuperBundle/Resources/views/Form/fields.html.twig
में तो app/config/config.yml
twig:
form:
resources:
- 'YourSuperBundle:Form:fields.html.twig'
में निम्नलिखित लाइनों को जोड़ने की आवश्यकता:
{% extends 'form_div_layout.html.twig' %}
{% block daterange_widget %}
... do the customization.
{% endblock %}
अतिरिक्त संदर्भ के लिए Symfony 2.0 पुस्तक के form customization पढ़ें।
+1 'fields.html.twig' के लिए पथ का उल्लेख करने के लिए - यह दस्तावेज़ में स्पष्ट नहीं है। धन्यवाद। –
कस्टम फ़ील्ड प्रकार
आप कोड कहीं प्रकाशित कर दिए हैं बनाने पर आधिकारिक रसोई की किताब में एक good entry है? –