2012-12-31 13 views
5

böyle findall() kullanın:Yii - Nasıl benzeri koşullar kullanmak ve sınırlamak için

$l = SiteContentRelated::model()->findAll('content_1=:c', array(':c' => $id)); 

Nasıl bu kadar koşul ekleyebiliriz?

LIMIT 5 gibi bir şey mi?

$criteria = new CDbCriteria; 
$criteria->condition = 'content_1=:c'; 
$criteria->limit = 5; 
$criteria->params = array(':c' => $id); 

$l = SiteContentRelated::model()->findAll($criteria); 

veya CDbCriteria dönüştürülecektir findAll için bir dizi geçirilecek:

cevap

13

Kullanım CDbCriteria daha ayrıntılı kriterleri belirtmek için

$l = SiteContentRelated::model()->findAll(array(
    'condition' => 'content_1=:c', 
    'limit' => 5, 
    'params' => array(':c' => $id), 
)); 

Bir LIMIT belirtmek, bu kadar Ayrıca ORDER BY belirtmek için iyi bir fikir.

modeli nitelikleri dayalı filtreleme için

, ayrıca findAllByAttributes kullanabilirsiniz:

$l = SiteContentRelated::model()->findAllByAttributes(array(
    'content_1' => $id, 
), array(
    'limit' => 5, 
));