如何将其转换为加入AR

时间:2011-02-28 09:09:15

标签: php yii

如何通过join将我的查询转换为Yii framewor的活动记录? 我很难转换这些东西。

        $conn = Yii::app()->db;
        $sql = "SELECT * FROM wswebproducts JOIN category_products ON
        category_products.ProductID = wswebproducts.ProductID
        WHERE category_products.catid = :cid";
        $sql = $conn->createCommand($sql);
        $sql->bindValue(':cid',Yii::app()->request->getQuery('cid'));

        $row = $sql->queryAll();

2 个答案:

答案 0 :(得分:0)

您应该在wswebproducts category_products relation中定义model,并由ProductID加入。

 public function relations()
{
    return array(
    'category_products' => array(self::MANY_MANY, 'Product', 'category_products(catid, ProductID)'),
    );
}

查看the manual,真棒: - )

答案 1 :(得分:0)

这是你想要的而且不起作用吗?

$dataProvider=new CActiveDataProvider('wswebproducts', array(
    'criteria'=>array(
        'condition'=>'category_products.catid = :cid',
        'with'=>array('category_products'),
        'params'=>array(':cid'=>Yii::app()->request->getQuery('cid')),
     ),
    'pagination'=>array(
        'pageSize'=>20,
     ),
));

参考此http://www.yiiframework.com/doc/api/1.1/CActiveDataProvider