yii 2一括挿入データ
yii 2一括挿入データとは、データを1つの配列に統合する、この配列を直接データベースに挿入し、複数のデータを一度に挿入することである.
2つの状況に分けて、
1つ目のケース:
全フィールドの挿入は、この配列の各データの中のキーがデータベースの中のフィールド名と一致し、各フィールドにある.
2つの状況に分けて、
1つ目のケース:
全フィールドの挿入は、この配列の各データの中のキーがデータベースの中のフィールド名と一致し、各フィールドにある.
use yii\helpers\ArrayHelper;
$rows = [];
foreach ($models as $model) {
if ($model->validate()) {
$rows[] = $model->attributes;
}
}
$rows = ArrayHelper::getColumn($models, 'attributes');
$postModel = new Post;
Yii::$app->db->createCommand()->batchInsert(Post::tableName(), $postModel->attributes(), $rows)->execute();
,
$rows[] = [
'title' => $model->title,
'content' => $model->content,
];
Yii::$app->db->createCommand()->batchInsert(Post::tableName(), ['title', 'content'], $rows)->execute();