| Предыдущая тема :: Следующая тема   | 
	
	
	
		| Автор | 
		Сообщение | 
	
	
		Илья Гость цитировать
 
 
 
 
 
 
  | 
		
			
				 Добавлено: 14 Авг 2010 13:06:22    Заголовок сообщения: Связывание моделей | 
				      | 
			 
			
				
  | 
			 
			
				У нас есть две модели Post и Comment.
 
Соответственно связь Post hasMany Comments.
 
 
Мне понятно как это работает в рельсах. Но в кейке это сделано по уродски.
 
 
При удалении поста, удаляются все комменты - это правильно.
 
Но при вытаскивании поста (Post->findById) в кейке атоматически вытаскиваются все комменты к данному посту. 
 
 
Если а нас  допустим по 300 комментов к 10 постам. И надо получить список постов - автоматически вытаскиваются 3000 комментов хотя нам этого явно не нужно.
 
 
С другой стороны если не использовать ассоциацию hasMany, то получаем геморой при удалении модели.
 
 
Как вы решали данную проблему? | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		michas
  цитировать
 
 
  Зарегистрирован: 28 Янв 2008 11:28:31 Сообщения: 123
 
  | 
		
			
				 Добавлено: 14 Авг 2010 23:13:25    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | Код: | 	 		  
 
$this->Post->recursive = -1;
 
 | 	  
 
перед findById. выберет без связей.
 
 
з.ы. прежде чем говорить что что-то сделанно по уродски можно и в руководство заглянуть _________________ Все самое интересное в реальном времени - xmpp:cakephp@conference.jabber.ru | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		evilbloodydemon
  цитировать
 
 
  Зарегистрирован: 11 Окт 2007 20:32:19 Сообщения: 125
 
  | 
		
			
				 Добавлено: 17 Авг 2010 16:09:27    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				$actsAs = array('Containable');
 
$recursive = -1 
 
 
в AppModel спасет отца русской демократии, потому что рекурсив не может избирательно подключать модели одного уровня, а Containable - запросто _________________ поздняк метаться - ракеты в воздухе
 
jabber-конференция по CakePHP - xmpp:cakephp@conference.jabber.ru | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
	
	
	
		 |