我最近开始与Yii合作,原谅无知:)
我有一个返回多行(数组数组)的SQL查询,然后我想将这些行插入到DB中:
$queryResults = $command->queryAll();
$model=new Campaigns();
foreach ($queryResults as $CActive) {
$model->setIsNewRecord(true);
$model->attributes=$CActive;
if($model->save($CActive)) {
echo "Good!";
}
问题是,即使我用新记录设置模型,它也记录了之前的PK(因为它是相同的模型)。
我需要为每一行创建一个新模型吗? (似乎不太可能......)
一如既往地谢谢 丹尼
答案 0 :(得分:6)
你必须在每个插页上创建一个新实例,就像这样,否则你只是一遍又一遍地更新一个模型。
$queryResults = $command->queryAll();
foreach ($queryResults as $CActive) {
$model=new Campaigns;
$model->attributes=$CActive;
if($model->save($CActive)) echo "Good!";
}
答案 1 :(得分:-1)
试试这个..
$queryResults = $command->queryAll();
foreach ($queryResults as $CActive) {
$model=new Campaigns;
$model->attributes=$CActive;
if($model->save($CActive)) {
echo "Good!";
}
那么你必须为每一行创建实例.. Yii核心要求.. }