2011-02-13 22 views
6

Yii CDbCriteria Katıl

SELECT * 
    FROM doc_docs dd 
    JOIN doc_access da 
    ON dd.id=da.doc_id 
    AND da.user_id=7 

CDbCriteria sözdizimini nasıl yazabilirim?

+0

Problem çözüldü. –

+0

Belki de çözümü paylaşacak mısınız? Ya da doğru bir çözüm ise cevabı kabul etmek? – zapadlo

+0

Cevabınızı başkalarına yardım etmek için paylaşmalısınız. – ASD

cevap

13
Aslında can not tamamen birincil tablo elde etmek için activerecord modeline kriterlerini uygulamak zorunda, ancak bir DocDocs modele sahip varsayarak beri bunu şöyle yapabileceği yazmak

: Her ne kadar onu

$oDBC = new CDbCriteria(); 
$oDBC->join = 'LEFT JOIN doc_access a ON t.id = a.doc_id and a.user_id = 7'; 

$aRecords = DocDocs::model()->findAll($oDBC); 

Eğer modelden senin DocDocs doc_access bir ilişki verirsen çok daha kolay olabilir, o zaman dbcriteria kullanmak gerekmez:

class DocDocs extends CActiveRecord 
{ 
    ... 

    public function relations() 
    { 
     return array('access' => array(self::HAS_MANY, 'DocAccess', 'doc_id'); 
    } 

    ... 
} 

$oDocDocs = new DocDocs; 
$oDocDocs->id = 7; 
$aRecords = $oDocDocs->access; 

... size nasıl başlamak için oldukça iyi bir fikir vermeli