Столкнулся со следующей проблемой:
БД - постгрес
Есть табличка с json полем
Если в миграции делать
Код: Выделить всё
$this->insert('{{%table}}', [
'jsonField' => [
1, 2, 3, 4, 5
],
]);
А если делать
Код: Выделить всё
$this->batchInsert('{{%table}}', [
'jsonField' => [
1, 2, 3, 4, 5
],
],[
'jsonField' => [
7, 8, 9, 10
],
]);
Код: Выделить всё
> insert into {{%table}} ...Exception: Array to string conversion (/code/vendor/yiisoft/yii2/db/pgsql/QueryBuilder.php:467)
#0 /code/vendor/yiisoft/yii2/db/Command.php(504): yii\db\pgsql\QueryBuilder->batchInsert()
#1 /code/vendor/yiisoft/yii2/db/Migration.php(246): yii\db\Command->batchInsert()
yii\db\Command -> batchInsert
делается
Код: Выделить всё
$table = $this->db->quoteSql($table);
$columns = array_map(function ($column) {
return $this->db->quoteSql($column);
}, $columns);
Кстати
Код: Выделить всё
$table = $this->db->quoteSql($table);
Код: Выделить всё
foreach ($columns as $i => $name) {
$columns[$i] = $schema->quoteColumnName($name);
}
return 'INSERT INTO ' . $schema->quoteTableName($table)
. ' (' . implode(', ', $columns) . ') VALUES ' . implode(', ', $values);
Код: Выделить всё
$this->batchInsert($this->db->getSchema()->getRawTableName('{{%table}}'),