Yii: работа с несколькими таблицами

Попытка выполнить этот запрос:

SELECT md.title, md.url FROM MenuData md, Menu m WHERE m.parent=0 AND m.menuType=1 AND md.menuID = m.id ORDER BY m.sort ASC 

Как показано ниже:

  $criteria = new CDbCriteria(); $criteria->together = true; $criteria->with = array('MenuData'); $criteria->compare("Menu.menuType", 1); $criteria->compare("Menu.parent", 0); $criteria->join = 'LEFT JOIN MenuData ON MenuData.menuID=Menu.id'; $criteria->order = '`Menu.sort` ASC'; $criteria->compare("MenuData.locale", $this->lang); $results = Menu::model()->findAll($criteria); 

Имеются модели меню и Menudata. Но получив следующую ошибку:

 Relation "MenuData" is not defined in active record class "Menu". 

$ criteria-> with == join.

Я предполагаю, что у вас есть отношение в меню модели.

  public function relations() { // NOTE: you may need to adjust the relation name and the related // class name for the relations automatically generated below. return array( 'MenuData' => array(self::HAS_MANY, 'Menudata', 'menuID','joinType' => 'LEFT JOIN'), ); } 

И ваши критерии:

  $criteria = new CDbCriteria(); $criteria->together = true; $criteria->with = array('MenuData'); $criteria->compare("t.menuType", 1); $criteria->compare("t.parent", 0); // $criteria->join = 'LEFT JOIN MenuData ON MenuData.menuID=Menu.id'; $criteria->order = '`t.sort` ASC'; $criteria->compare("MenuData.locale", $this->lang); $results = Menu::model()->findAll($criteria);