activerecord - framework - Yii-Cómo usar condiciones como dónde y límite
yii2 query like (1)
Yo uso findAll () de esta manera:
$l = SiteContentRelated::model()->findAll(''content_1=:c'', array('':c'' => $id));
¿Cómo puedo agregar una condición a esto?
¿Como LIMIT 5
o algo?
Use CDbCriteria
para especificar criterios más detallados:
$criteria = new CDbCriteria;
$criteria->condition = ''content_1=:c'';
$criteria->limit = 5;
$criteria->params = array('':c'' => $id);
$l = SiteContentRelated::model()->findAll($criteria);
o pase una matriz para findAll
cual se convertirá en un CDbCriteria
:
$l = SiteContentRelated::model()->findAll(array(
''condition'' => ''content_1=:c'',
''limit'' => 5,
''params'' => array('':c'' => $id),
));
Cuando especifica un LIMIT
, es una buena idea también especificar ORDER BY
.
Para filtrar en función de los atributos del modelo, también puede usar findAllByAttributes
:
$l = SiteContentRelated::model()->findAllByAttributes(array(
''content_1'' => $id,
), array(
''limit'' => 5,
));