В чем разница между функциями save и saveAll в cakephp? - PullRequest
1 голос
/ 23 декабря 2010

Может ли кто-нибудь привести пример, пожалуйста

Ответы [ 3 ]

7 голосов
/ 23 декабря 2010

save используется для простого сохранения модели:

Array
(
    [ModelName] => Array
    (
        [fieldname1] => 'value'
        [fieldname2] => 'value'
    )
)

Предполагая, что вышеуказанная информация была сохранена в массиве $ data, можно было бы вызвать

$this->ModelName->save($data);

для того, чтобы ВСТАВИТЬ запись в таблицу модели (если поле id не указано) или ОБНОВИТЬ запись таблицы модели (если указано поле id).

saveAll используется для:

Сохранение нескольких записей модели

Array
(
    [Article] => Array
    (
        [0] => Array
        (
            [title] => title 1
        )
    [1] => Array
        (
            [title] => title 2
        )
    )
)

Таким образом, вы можете сохранить несколько моделей одновременно, вместо того, чтобы зацикливаться и использовать save() каждый раз.

Сохранить связанные записи модели

Array
(
    [User] => Array
    (
        [username] => billy
    )
    [Profile] => Array
    (
        [sex] => Male
        [occupation] => Programmer
    )
)

Это позволит одновременно сохранить модели User и Profile. В противном случае вам придется сначала вызвать save() для User, получить id только что сохраненного пользователя, а затем сохранить Profile с user_id, установленным на полученный id.

Примеры взяты прямо из книги .

0 голосов
/ 03 мая 2012

Начиная с Cake 2.0

save Сохраняет данные модели (на основе белого списка, если он есть) в базе данных.По умолчанию проверка выполняется перед сохранением.

saveAll Сохраняет несколько отдельных записей для одной модели;Также работает как с одной записью, так и со всеми связанными с ней записями.

0 голосов
/ 23 декабря 2010

saveAll сохраняет все данные модели в форме, тогда как save сохраняет только один. Таким образом, вы использовали бы save для сохранения одного значения, в то время как saveAll в основном избавляет вас от необходимости использовать цикл для сохранения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...