3

我希望将此 Sql 命令转换为 yii cactivedataprovider 格式,以便我可以使用此标准提供 dataprovider。

  SELECT *
    FROM (

    SELECT (

    CASE WHEN product_name LIKE '%nokia%'
    THEN 1
    ELSE 0
    END +
    CASE WHEN product_name LIKE '%lumia%'
    THEN 1
    ELSE 0
    END +
    CASE WHEN product_name LIKE '%800%'
    THEN 1
    ELSE 0
    END
    ) AS numMatches, product_name
    FROM Production
    ) AS t
    WHERE numMatches >0
    ORDER BY numMatches DESC 
4

1 回答 1

3

您关于需要 a 的评论ActiveDataProvider可能不正确,大多数 Yii 小部件只需要CDataProviderSQLDataProvider 和 ActiveDataProvider 都是的实例。如果你真的需要活动记录模型,你可以通过 SQL 选择活动记录模型:

$models = MyModel::model()->findAllBySql($sql);

然后在这样的数据提供者中使用它们:

$data = CArrayDataProvider($models);
于 2013-02-13T08:46:22.647 回答