| Предыдущая тема :: Следующая тема   | 
	
	
	
		| Автор | 
		Сообщение | 
	
	
		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    Заголовок сообщения: Связи в моделях | 
				     | 
			 
			
				
  | 
			 
			
				| Действительно и как я раньше не догадался | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
	
	
	
		 |