我有一个变量
我为每个项目运行了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的最后一项.任何人都可以解决这个问题.提前致谢.
尝试这个..
$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)
我遇到了完全相同的问题并得到了完美的解决方案。这是经过测试的。
$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。