2013-11-04 79 views
-1

我不完全知道yii框架。如何爲這種情況製作CDbCriteria? 我有這樣的基本查詢代碼。自定義Cgridview的CDBCriteria

SELECT 
jam_kerja.id, 
jam_kerja.id_cabang, 
jam_kerja.tgl_berlaku, 
jam_kerja_detail.id_jam_kerja, 
jam_kerja_detail.shift, 
jam_kerja_detail.jamkerja, 
jam_kerja_detail.jamistirahat 
FROM 
jam_kerja , 
jam_kerja_detail 
WHERE 
jam_kerja_detail.id_jam_kerja = jam_kerja.id and jam_kerja.id_cabang=5 

也許有Yii的朋友可以幫我嗎?

回答

0
$criteria = new CDbCriteria(); 
$criteria->select = 't.id,t.id_cabang, t.tgl_berlaku, jd.id_jam_kerja, jd.shift ,jd.jamkerja,'; 

$criteria->join = 'INNER JOIN jam_kerja_detail jd ON t.id = jd.id_jam_kerja'; 

$criteria->addCondition('t.id_cabang=5'); // edited this line 

//and now give this criteria to your model 

$model = YourModel::model()->findAll($criteria); 
+0

感謝tinyByte。但是在CGridView中仍然沒有顯示這個CDbCriteria。 :)我粘貼你的代碼在mymodel這樣[鏈接] http://pastebin.com/pHFiGkdA – deib97

+0

顯示錯誤:CDbCommand gagal menjalankan statementSQL:SQLSTATE [42S22]:未找到列:1054未知列'jam_kerja.id_cabang'in' where子句'。執行的SQL語句是:SELECT t.id,t.id_cabang,t.tgl_berlaku,jd.id_jam_kerja,jd.shift,jd.jamkerja FROM'jam_kerja'' t' INNER JOIN jam_kerja_detail jd ON t.id = jd.id_jam_kerja WHERE jam_kerja.id_cabang = 1 – deib97

+0

它表示列id_cabang不在表id_cabang,如果這是正確的我需要看到你的表架構,條件很好 – tinybyte

0

我終於找到了解決方案,它可能對其他朋友有用。

$criteria=new CDbCriteria; 
$criteria->join='INNER JOIN jam_kerja t1 ON t1.id=t.id_jam_kerja'; 
$criteria->condition='t1.id_cabang='.$_GET['id']; 
+0

這是我給你的同一個答案!您只是將輸入添加爲變量。這有什麼不同? – tinybyte