Коде с 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;