2015-02-04 9 views
7

मैं सोच रहा था कि मैं वाईआई 2 फ्रेमवर्क में मॉडल के बिना एक फॉर्म कैसे बना सकता हूं क्योंकि मैं मेलचंप साइनअप फॉर्म बना रहा हूं, इसलिए मॉडल आवश्यक नहीं है, नीचे कोड एक फॉर्म उत्पन्न करता है, हालांकि आप कर सकते हैं देखें कि यह एक मॉडल का उपयोग करता है।Yii2 मॉडल के बिना एक फॉर्म बनाएं

<?php $form = ActiveForm::begin(['id' => 'login-form']); ?> 

<?= $form->field($model, 'title')->textInput(['maxlength' => 255]) ?> 

<?php ActiveForm::end(); ?> 

क्या मैं अभी भी सक्रिय रूप का उपयोग करता हूं, मैं बिना किसी त्रुटि को फेंकने के $ $ मॉडल चर को कैसे हटा सकता हूं?

+1

के लिए सत्यापन के हिस्से के रूप मेंरनको नहीं जानते हैं, लेकिन आप हमेशा सादा ओएल 'एचटीएमएल का उपयोग कर सकते हैं .... –

+0

@DamienPirsy हाँ मैं बस सोच रहा था कि यह संभव है या नहीं जो मैं अनुमान लगा रहा हूं, हालांकि आप कहते हैं कि सामान्य एचटीएमएल नौकरी करेगा। – con322

+0

@DamienPirsy यह रास्ता है, लेकिन जब यह रूपों की बात आती है तो YII2 भयानक है, मॉडल में फॉर्म का इनपुट प्राप्त करना लगभग असंभव है। एक ढांचा का उपयोग न करने का अच्छा कारण! – Sliq

उत्तर

0

@DamienPirsy ने सुझाव दिया - सादा उपयोग करें। यदि आप इसके लिए yii2 सुविधाओं का उपयोग करना चाहते हैं - कक्षा yii \ helpers \ BaseHtml (http://www.yiiframework.com/doc-2.0/yii-helpers-basehtml.html) का उपयोग करें, जैसा कि आप चाहते हैं किसी भी रूप को बनाने के लिए सभी विधियां हैं। फिर आप इसे अपने आवेदन के किसी भी नियंत्रक में किसी भी कार्रवाई में संचालित कर सकते हैं। लेकिन यह सच एमवीसी तरीका नहीं है। यही कारण है कि वाईआई/वाईआई 2 आपको मॉडलों का उपयोग करने की सलाह देता है।

+0

सलाह/जानकारी के लिए धन्यवाद। तो क्या आप मुझे ऐप से सीधे मेलचंप सूची में पोस्ट डेटा भेजते समय भी मॉडल का उपयोग करने की सलाह दे रहे हैं? – con322

5

उपयोग HTML इनपुट सक्रिय रूप <?=Html::input('text','','',['class'=>'form-control'])?>

+0

कृपया अपना उत्तर पूरा करें। क्या आप मेलचंप सदस्यता फॉर्म बनाने के लिए एचटीएमएल हेल्पर का उपयोग करने का सुझाव दे रहे हैं? – MEM

+0

@MEM उन्होंने सही उत्तर IMHO प्रदान किया है। वह और क्या प्रदान करेगा? यह आपको आवश्यक सटीक विजेट है। – Gogol

+0

@ Sumanstm21, आप वाक्यविन्यास में रिक्त स्थान का उपयोग क्यों नहीं करते? – dearmisterrobot

9

Yii2 के साथ इस अच्छी छोटी thingy एक DynamicModel कहा जाता है। यह मूल रूप से आपको फ्लाई पर एक मॉडल बनाने की अनुमति देता है ताकि आप अभी भी सभी ActiveForm और सत्यापन उपहारों का उपयोग कर सकें, लेकिन इसके लिए एक संपूर्ण मॉडल कक्षा लिखने के लिए प्रतिबद्ध नहीं हो सकते हैं। दिलचस्प हो सकता है। दस्तावेज़ से

उदाहरण:

public function actionSearch($name, $email) 
{ 
    $model = DynamicModel::validateData(compact('name', 'email'), [ 
     [['name', 'email'], 'string', 'max' => 128], 
     ['email', 'email'], 
    ]); 
    if ($model->hasErrors()) { 
     // validation fails 
    } else { 
     // validation succeeds 
    } 
} 

जाहिर है इन उदाहरण भी ActiveForm -widget के लिए इस्तेमाल किया जा सकता है। फिर आप अपने कार्यों में पहले उचित सत्यापन चला सकते हैं और फिर MailChimp पर अपने डेटा को पास कर सकते हैं। यदि आप HTML Purifier सामग्री

+1

http://www.yiiframework.com/wiki/759/create-form-with-dynamicmodel/ पर डायनामिक मॉडेल पर अच्छा लेख –

संबंधित मुद्दे