CakePHP сохранение других данных модели - PullRequest
2 голосов
/ 30 сентября 2010

У меня есть две модели

Отдых (id, имя .....)
Часы работы (id, open, close, rest_id)

При попытке сохранить записьиз ресторана добавить форму.Сохраняет только время открытия и закрытия, но не идентификатор ссылки в rest_id.

$this->Restaurant->create();
if($this->Restaurant->saveAll($this->data, array('validate' => 'first'))) {
    $this->Session->setFlash(__('The restaurant has been saved', true));
    //$this->redirect(array('action' => 'index'));
} else {
    $this->Session->setFlash(__('The restaurant could not be saved. Please, try again.', true));
}

1 Ответ

2 голосов
/ 30 сентября 2010

Если вы делаете вставку (так как это «добавление»), маловероятно, что вы можете выполнить все за один шаг, поскольку MySQL не будет знать идентификатор вашего ресторана, чтобы сэкономить часы работы.Я бы предложил сделать следующее:

$this->Restaurant->create();
if($this->Restaurant->save($this->data, array('validate' => 'first'))) {
    $this->data['rest_id'] = $this->Restaurant->getLastInsertId();
    if($this->Restaurant->OperatingHours->save($this->data, array('validate' => 'first'))) {
        $this->Session->setFlash(__('The restaurant has been saved', true));
        //$this->redirect(array('action' => 'index'));
    } else {
        $this->Session->setFlash(__('The restaurant opening hours could not be saved. Please, try again.', true));
    }
} else {
    $this->Session->setFlash(__('The restaurant could not be saved. Please, try again.', true));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...