yii与CDbCriteria建立联接

时间:2014-04-28 20:26:31

标签: join yii

我要检索一个与他相关的模型。 例如,我有一个桌面游戏和另一个赌注。 bet有一个带有game_id的列

目前,我只检索游戏模型,而不是相关的赌注。我尝试过左连接而没有成功 这就是我做的事情

$criteria=new CDbCriteria;
            $criteria->select = '*';
            $criteria->alias = 'Game';
            $criteria->join='INNER JOIN bet ON Game.id=bet.game_id';
            //$criteria->condition='bet.user_id='.$_userId.' or user_id is null';
            $criteria->order = 'date_game ASC';
            return $this->model()->findAll($criteria);

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

我在游戏控制器中修改关系

'bet' => array(self::HAS_MANY, 'Bet', 'game_id'),

现在,我可以通过用户进行相关投注。

return $this->model()->with(array('bet'=>array('condition'=>'user_id='.$_userId.' or user_id is null')))->findAll($criteria);

答案 1 :(得分:0)

模型仅返回属性上的模型。如果要扩展相关表,则需要使用

您模型中的

  public function relations()
  {
    return array(
             'benmodel'=>array(self::HAS_MANY, 'Ben', 'game_id'=>'id');

            );
   }
控制器中的

        return $this->model()->with('benmodel')->findAll();  //you get both table columns