$form['#submit']
और $form['#after_build']
के बीच क्या अंतर है?ड्रूपल फॉर्म सबमिट, फॉर्म_बिल्ड
उत्तर
एपीआई दस्तावेज़ इसे काफी अच्छी तरह से प्रस्तुत करते हैं। $form['#submit']
आपके फॉर्म में सबमिट हैंडलर की एक सरणी जोड़ देगा: यानी जब कोई "सबमिट" बटन पर क्लिक करता है तो सरणी में फ़ंक्शन को कॉल किया जाएगा। जमा करने के बाद इन्हें कहा जाएगा।
आप आमतौर पर इस संपत्ति का उपयोग करना चाहते हैं जब आप hook_form_alter()
पर कॉल कर रहे हैं, तो उस फ़ॉर्म पर एक और सबमिट फ़ंक्शन जोड़ने के लिए जिसे आपने स्वयं नहीं बनाया है, जैसे कि आप स्वयं को फॉर्म में फॉर्म बनाते हैं, तो आप डिफ़ॉल्ट सबमिट भी करते हैं हैंडलर। Here#submit
पर एफएपीआई दस्तावेज़ हैं।
$form['#after_build']
समान है कि इसमें कॉल करने के लिए कई प्रकार की फ़ंक्शंस होती है, लेकिन फॉर्म के प्रदर्शन के बाद उन्हें कॉल किया जाएगा। यदि आपके पास किसी फॉर्म तत्व में डिफ़ॉल्ट या मौजूदा मान है, तो इसका उपयोग किया जा सकता है, और जमा करने से पहले उस मान के साथ कुछ की स्थिति की जांच करना चाहते हैं। फ़ॉर्म को प्रदर्शित होने के बाद, जमा करने से पहले कुछ की स्थिति की जांच करने के एक अच्छे उदाहरण के लिए FAPI दस्तावेज़ देखें।
तो संक्षेप में, $form['#submit']
फ़ंक्शंस जमा करने पर कॉल किए जाएंगे, और $form['#after_build']
फ़ंक्शंस को फ़ॉर्म के प्रदर्शन पर कॉल किया जाएगा।