Задать вопрос
@pashaa

Как сопоставить данные с полями в bacheInsert?

public static  $columnsInsert =
        [
            'id',
            'customer_id',
            'summary',
            'description',
            'color',
            'favourite',
            'update_at',
            'create_at',
            'personEmail'
        ];


    $sql = $db->queryBuilder->batchInsert(self::$table, self::$columnsInsert, $data);

На сервер приходит массив строк, строка содержит такие же ключи как поля базы. Но данные почему то не сопоставляются, неужели придётся сопоставлять поля с порядкам в строках в запросе.
  • Вопрос задан
  • 49 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
@karminski
Senior React.JS Developer
arrow_keys($data[0])

/* 
$data = [
0 => ['id' => ..., 'customer_id' => ...],
1 => ['id' => ..., 'customer_id' => ...]
...
]
*/
$sql = $db->queryBuilder->batchInsert(self::$table, arrow_keys($data[0]), $data);


Кроме того, $data может быть массивом вставляемых моделей, тогда вместо arrow_keys($data[0]), нужно писать arrow_keys($data[0]->attributes).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы