Yii2 - 模型在Yii2中不保存在foreach循环中

Ily*_*rim 6 php 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;
Run Code Online (Sandbox Code Playgroud)

此函数仅保存#fourth_Tag的最后一项.任何人都可以解决这个问题.提前致谢.

GAM*_*ITG 5

尝试这个..

$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;
Run Code Online (Sandbox Code Playgroud)


Soh*_*edM 3

我遇到了完全相同的问题并得到了完美的解决方案。这是经过测试的。

$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;
Run Code Online (Sandbox Code Playgroud)

这是当您创建一个与现有变量同名的新变量时,它会覆盖其值。这里你不需要创建新属性或将 id 设置为null;就在循环unset() $model结束之前foreach