Hi all,
When retrieving records and using CDbCriteria conditions and wanting to use multiple conditions I find myself writing things like this :
$criteria=new CDbCriteria;
$criteria->condition = '';
if(isset($_GET['site_code']) &&
Site::model()->exists('code = :site_code', array(':site_code' => $_GET['site_code']))) {
$criteria->condition = "site_code = :site_code";
$criteria->params = array(':site_code' => $_GET['site_code']);
}
if(isset($_GET['text_type']) &&
TextType::model()->exists('name = :text_type', array(':text_type' => $_GET['text_type']))) {
$criteria->condition .= (!empty($criteria->condition))? ' AND ' : '';
$criteria->condition .= "TextType_id = :TextType_id";
$criteria->params = array_merge($criteria->params, array(':TextType_id' => $_GET['text_type']));
}
What I think is wrong is having to write the part where I check I already have set a condition string to insert the 'AND' if I have.
$criteria->condition .= (!empty($criteria->condition))? ' AND ' : '';
I think I am missing something …
How can I set multiple conditions without resorting to this somewhat unelegant code ?
thanks for any help on this