Yii Framework Forum: Выборка Данных С With - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Выборка Данных С With Вне зависимости от того, существует ли связь Rate Topic: -----

#1 User is offline   Extj 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 9
  • Joined: 19-June 12

Posted 17 November 2012 - 02:05 AM

Привет.

Есть две модели Comment и Vote. Отношение Comment к Vote прописано следующим образом:
'userVote' => array(self::HAS_ONE, 'Vote', 'comment_id', 'condition' => 'userVote.author_id=' . Yii::app()->user->id)


Comment может иметь, а может и не иметь связь 'userVote'. Но тем не менее, каждый раз происходит обращение к БД, для того, чтобы совершить выборку Vote по вышеприведенному условию.
Вызов связи Vote происходит в модели Comment следующим образом:

public function getUserVote()
{
	if (!Yii::app()->user->isGuest)
		return $this->userVote ? $this->userVote->value : null;
	else
		return null;
}


Комментариев может быть очень много. И для каждого из них формируется новый запрос к БД.
Логично было бы объединить все эти запросы в один и доставать userVote вместе с каждым Comment.
Делаю это следующим образом в контроллере:

$criteria = new CDbCriteria();
...
$criteria->with = array('userVote');
$allComments = Comment::model()->findAll($criteria);


Но извлекаются только те комментарии, у которых связь userVote не равна null.

Как можно достать все комментарии со связью userVote, а не только те, у которых она существует?
Если связь не существует, то $comment->userVote достать как null.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users