【问题标题】:Yii SQL to CActiveDataProviderYii SQL 到 CActiveDataProvider
【发布时间】:2011-05-16 13:10:12
【问题描述】:

我需要 Yii 专家的帮助,我有一个 SQL 查询

SELECT p.name , p.price FROM products as p, prod_cat as pc WHERE pc.id_pr  =  p.id_pr AND pc.id_cat in (SELECT id_cat FROM prod_cat where id_pr=<myid>)

我需要在 Yii 中将其转换为 CActiveDataProvider。像这样的

            $dataProvider2=new CActiveDataProvider('Products',array(
                        'criteria' => array(
                             ...                                      
                        ),

                ));

我有 3 个表:产品、类别和 Prod_cat(另外两个表之间的连接)。 我需要从我提供的同类商品中找到其他产品 ()。

【问题讨论】:

    标签: php activerecord yii


    【解决方案1】:

    我会在您的数据库中创建一个视图(使用该查询)。然后根据该视图在 Yii 中制作模型。然后创建一个活动数据提供者将很容易。

    http://en.wikipedia.org/wiki/View_(database)

    【讨论】:

    • 我发现 phpmyadmin 缺乏通过 GUI 添加视图的功能,但是如果您使用直接 sql,例如 create view view_name as select 等,它工作得很好。在 GII 中制作模型很简单,输入前几个字符后会显示视图名称。
    • 视图有时会减慢您的查询速度。
    【解决方案2】:

    一个想法是使用具有关系的模型。 http://www.yiiframework.com/doc/guide/1.1/en/database.arr

    另一种方法是使用DAO,但它不适用于CActiveDataProvider

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-23
      相关资源
      最近更新 更多