Коде с Yii2 - модель-это не экономия в цикл foreach в коде с Yii2
У меня есть переменная
Я запустил цикл foreach для каждого элемента
$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. Может ли кто-нибудь иметь решение об этом. Спасибо заранее.
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;
Это когда вы делаете новую переменную с таким же именем существует, то перезаписать его значение. Здесь вам не нужно создавать новый атрибут или устанавливать id в null
, просто unset()
$model
до конца foreach
петли.
попробуйте это..
$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;