2015-08-23 19 views
6

में foreach पाश में बचत नहीं कर रहा है मैं हर आइटमYii2 - मॉडल Yii2

$tags = ['#first_Tag','#second_tag','#third_tag','#fourth_Tag']; 
foreach ($tags as $t) : 

    $model = new Tags; 

    $model->tag_name = $t; 

    $model->save(); //yii2 

endforeach; 

इस समारोह केवल पिछले आइटम जो #fourth_Tag है बचाता है के लिए एक चर foreach पाश

मैं चलाने की है। क्या किसी के पास इसका समाधान हो सकता है। अग्रिम में धन्यवाद।

+1

कृपया 'टैग' मॉडल कोड दिखाएं। –

+2

'$ मॉडल-> सहेजें() 'मॉडल को सहेजा गया है, तो गलत हो जाना चाहिए, अन्यथा झूठी। इसके लिए परीक्षण करें और यदि यह झूठा लौटाता है, तो क्या गलत है यह देखने के लिए 'print_r ($ model-> त्रुटियां) 'करें। – Beowulfenator

+0

मैंने इस समस्या का उपयोग किया है और यह सही ढंग से काम करता है ..... धन्यवाद –

उत्तर

2

मैं बिल्कुल वैसा ही समस्या हुई है और सही समाधान मिल गया। यह परीक्षण किया जाता है।

$tags = ['#first_Tag','#second_tag','#third_tag','#fourth_Tag']; 
foreach ($tags as $t) : 

    $model = new Tags; 

    $model->tag_name = $t; 

    $model->save(); //yii2 

    unset($model); 

endforeach; 

यह तब होता है जब आप मौजूदा एक ही नाम के साथ एक नया चर बनाते हैं, तो यह इसके मूल्य को ओवरराइट करता है। यहां आपको नई विशेषता बनाने या आईडी को null पर सेट करने की आवश्यकता नहीं है; foreach लूप के अंत से पहले unset()$model

+1

@sohelahmadm धन्यवाद –

3

इस प्रयास करें ..

$tags = ['#first_Tag','#second_tag','#third_tag','#fourth_Tag']; 
$model = new Tags; 

foreach ($tags as $t) : 

    $model->id = NULL; //primary key(auto increment id) id 
    $model->isNewRecord = true; 
    $model->tag_name = $t; 

    $model->save(); //yii2 

endforeach; 
+0

धन्यवाद @ gamitg ने काम किया –

+0

है गामिटग मैंने आपके कोड की कोशिश की .. वास्तव में काम कर रहा है..लेकिन यह मेरे डीबी में एक अतिरिक्त दायर किया गया है। क्या आप कह सकते हैं itz खुशी है ??? –

+0

यह अतिरिक्त फ़ील्ड नहीं बनाता है लेकिन यह नए रिकॉर्ड के लिए नई पंक्ति बनाता है। – GAMITG

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