Я хочу сохранить 10 раз в Cakephp, используя функцию Save с циклом for, но она не работает. Он сохраняет только одни данные.
Как мы можем это сделать, чтобы он сохранял несколько данных при одном вызове?
Ниже мой код …
for($i=0;$i<10;$i++){ $unique_id = $this->_unique($userData['User']['id']); // Unique id with userid as initial prefix $this->data['Invite'] = array('invited_user' => $userData['User']['id'], 'unique_id' => $unique_id); $this->User->Invite->save($this->data['Invite']); }
Вам нужно вызвать Model :: create () для каждой итерации цикла. IE:
<?php for( $i=0; $i<10; $i++ ){ $this->User->Invite->create( ); $unique_id = $this->_unique($userData['User']['id']); $this->data['Invite'] = array('invited_user' => $userData['User']['id'], 'unique_id' => $unique_id); $this->User->Invite->save($this->data['Invite']); unset( $this->data[ 'Invite' ] ); } ?>
Ответ приведен в следующей книге, стр. 94: Источник: Бари, Ашанул. Разработка приложений CakePHP (стр. 94). Packt Publishing. Kindle Edition. Это то, что вы можете найти в книге, и ответ на этот вопрос:
$this->Book->create(); $this->Book->save($this->data);
Примечание. Очень важно вызвать метод create () модели перед вызовом метода save () модели, если намерение состоит в создании новой записи.
Другими словами, вам нужно использовать create () перед save () каждый раз, когда вы используете save ().