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

时间:2015-08-23 11:31:12

标签: 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;

此功能仅保存#fourth_Tag的最后一项。 任何人都可以解决这个问题。提前谢谢。

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分: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;

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