0 => array:4 [
"id" => 14
"stage_id" => 9
"stage_name" => "Сцена1"
"main_stage_id" => 53
]
1 => array:4 [
"id" => 15
"stage_id" => 19
"stage_name" => "Сцена2"
"main_stage_id" => 53
]
2 => array:4 [
"id" => 16
"stage_id" => 24
"stage_name" => "Сцена33"
"main_stage_id" => 53
]
3 => & array:3 [
"stage_id" => 1
"stage_name" => "Сцена4"
"main_stage_id" => 53
]
]
и есть функция upsert:
$mainstage->stages()->upsert($tags, ['id'], ['stage_id', 'stage_name', 'main_stage_id']);
Суть происходящего - Сцены 1 и 2 не изменились, Сцена 3 Переименовалась в Сцена 33, и добавилась Сцена4
Так вот есть без добавления Сцены 4 - все работает ОК, а вот если пытаюсь добавить новую сцену, то получаю ошибку:
"SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 4"
Это потому что разное количество строк в Сцене4? Добавить туда id = 0?
Это потому что разное количество строк в Сцене4? - да Добавить туда id = 0? скорее создать отдельно
Добавил id=0 и взлетело, просто если по отдельности делать пропадает красота upserts =)) С другой стороны всё равно нужно фильтровать то что нужно удалить если из массива что-то убрали ...
Обсуждают сегодня