1
我想使用yii2 ActiveRecord在我的表中插入多條記錄。 我已經知道我可以使用此代碼yii2使用ActiveRecord批量插入
$connection->createCommand()->batchInsert('user', ['name', 'age'], [
['Tom', 30],
['Jane', 20],
['Linda', 25],
])->execute();
但是通過這種方式我的模型驗證不執行。 我已經閱讀了這個問題 ActiveRecord batch insert (yii2)
而且受到一個棘手的方式做驗證,考慮我要填寫使用ActiveRecords事件created_at
和updated_at
列。
就這樣
public function beforeSave($insert)
{
if (parent::beforeSave($insert)) {
if($insert)
$this->created_at = date('Y-m-d H:i:s');
$this->updated_at = date('Y-m-d H:i:s');
return true;
} else {
return false;
}
}
謝謝您的回答, 如果你的模型有一個BeforeSave事件被插入新記錄之前,所以出事TP所有的記錄,除了批量插入觸發。 我們該怎麼辦這個問題呢? – mhndev
是的,我忘記了事件。我加入了'beforeSave'和'aftreSave'事件的示例支持(基於'\ yii \ db \ ActiveRecord :: insertInternal')。當然,描述的方法並不是'$ model-> save()'的完整選擇。至少我們不能在插入成功後填入PK。 – IStranger