CakePHP – сохранение массива данных (нескольких записей)
Для того, чтобы сохранить данные в CakePHP, пришедшие, например, после редактирования формы, нужно воспользоваться функцией save. Формат данных (передаваемой переменной) при этом должен быть следующим:
1 2 3 4 5 6 7 8 | Array ( [ModelName] => Array ( [fieldname1] => 'value' [fieldname2] => 'value' ) ) |
А что делать, если необходимо сохранить массив данных, то есть сразу несколько записей?
Для этого нужно воспользоваться функцией saveAll. Например, мы имеем массив $newArticles:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | Array ( [0] => Array( [Article] => Array ( [title] => 'Новые технологии на рынке видеокарт' [author] => 'Ben' ) ) [1] => Array( [Article] => Array ( [title] => 'Обновление моделей 21' мониторов' [author] => 'Alex R' ) ) ) |
И для того, чтобы сохранить/обновить эти данные в таблице Articles, необходимо вызвать функцию saveAll (для обновления, естественно, необходимо, чтобы у элементов массива были указаны ID)
1 | $this->Article->saveAll($newArticles); |
Похожие статьи:
Комментарии
Добавить комментарий

admin



А как сделать форму, в которой бы было много полей с одним именем, а в БД при сохранении появилось бы столько записей, сколько полей заполнено в форме?
Например есть “Телевизор” у которого может быть 3 цвета. я заполняю “красный” и т.д
и при сохранении в бд появляется 3 записи с id и color
Думаю такое можно сделать с помощью Query, а не SaveAll. И, например, в цикле (правда это плохой вариант :) )