2011-05-16 73 views
2

我需要從Yii的專家的幫助下,我有一個SQL查詢Yii的SQL來CActiveDataProvider

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(兩個人之間的連接)。 我需要找到來自我提供的同一類別商品的其他商品()。

回答

1

工作,我會在數據庫中創建一個視圖(使用查詢)。然後根據這個觀點在Yii中建立一個模型。創建activedataprovider將很容易。

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

+0

我發現,phpMyAdmin是缺少然而通過GUI添加視圖,如果你直接使用SQL像CREATE VIEW VIEW_NAME作爲選擇等它工作得很好。在GII中製作模型非常簡單,在輸入前幾個字符後出現了視圖名稱。 – sdjuan 2014-03-14 04:45:10

+1

views有時會減慢你的查詢速度。 – 2015-10-19 13:57:28

相關問題