Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Dromok
цитировать
Зарегистрирован: 24 Апр 2009 17:01:45 Сообщения: 6
|
Добавлено: 24 Апр 2009 17:15:12 Заголовок сообщения: Связи в моделях. |
|
|
Суть вопроса проста. Имеем две модели question и answer.
Question состоит из двух таблиц id и content.
Answer состоит из трех таблиц id, question_id, text.
Отсюда я думаю понятно, что каждый Question может быть связан с несколькими Answer.
Прописываем в моделях связи:
в question - var $hasMany = 'Answer';
в answer - var $belongsTo = 'Question';
Теперь я хочу чтобы через контроллер Questions в базу можно было добавить одновременно и сам вопрос(question) и ответ(answer) с привязкой question_id.
В контроллере Questions я добавил такой метод:
Код: | function add() {
if (!empty($this->data)) {
if ($this->Question->Answer->save($this->data)) {
$this->Session->setFlash('Данные успешно сохранены.');
$this->redirect(array('action' => 'index'));
}
}
} |
Ну и создал отображение: Код: | echo $form->create('Question');
echo $form->input('content', Array('label' => 'Вопрос', 'type' => 'text'));
echo $form->input('Answer.text', Array('label' => 'Ответ', 'type' => 'text'));
echo $form->end('Сохранить'); |
Вот теперь хочу, чтобы одновременно добавлялся и вопрос и ответ с question_id. Но при моей реализации question_id всегда равен 0. Как исправить?
Я надеюсь достаточно понятно объяснил. Спасибо всем кто попытается вникнуть. |
|
Вернуться к началу |
|
|
Vlad
цитировать
Зарегистрирован: 02 Ноя 2007 11:45:52 Сообщения: 241
|
Добавлено: 24 Апр 2009 17:28:35 Заголовок сообщения: |
|
|
Сохраняешь вопрос в базу
Получаешь его id
Выставляешь В question_id для ответа
Сохраняешь ответ |
|
Вернуться к началу |
|
|
michas
цитировать
Зарегистрирован: 28 Янв 2008 11:28:31 Сообщения: 123
|
Добавлено: 24 Апр 2009 19:48:42 Заголовок сообщения: |
|
|
$this->Question->saveAll($this->data) |
|
Вернуться к началу |
|
|
Dromok
цитировать
Зарегистрирован: 24 Апр 2009 17:01:45 Сообщения: 6
|
Добавлено: 24 Апр 2009 23:30:42 Заголовок сообщения: |
|
|
Ура сработало! Спасибо!
Только надо так:
$this->Question->Answer->saveAll($this->data)
без Answer не сработало
А если там десяток связанных моделей, их все надо указывать? |
|
Вернуться к началу |
|
|
michas
цитировать
Зарегистрирован: 28 Янв 2008 11:28:31 Сообщения: 123
|
Добавлено: 26 Апр 2009 11:31:21 Заголовок сообщения: |
|
|
Если не сработало так как я написал, значит связи не правильно настроенны _________________ Все самое интересное в реальном времени - xmpp:cakephp@conference.jabber.ru |
|
Вернуться к началу |
|
|
GoodMusicForever
цитировать
Зарегистрирован: 01 Авг 2009 02:53:51 Сообщения: 4 Откуда: Russia
|
Добавлено: 08 Авг 2009 14:44:15 Заголовок сообщения: Связи в моделях |
|
|
Действительно и как я раньше не догадался |
|
Вернуться к началу |
|
|
|