Yii find所有匹配至少有几个标准之一

时间:2012-02-13 00:31:31

标签: php activerecord yii

我正在Yii中对simpleQuery个记录执行findAll次操作,这些记录至少与多个CDbCriteria中的一个匹配,或者只在必要时,只搜索一些搜索条件。例如,我希望用户能够通过键入一个字符串来查询我的记录。应该针对四列中的每一列检查该字符串,并且结果集应该包括至少有一列与字符串匹配的所有记录(没有重复项)。我还是Yii的新手所以非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

假设您在模型的$ search_input字段中有搜索输入,并且您想要搜索该字符串的所有三个字段 - name,title和desc,您可以这样做 -

$criteria = new CDbCriteria();
$criteria->compare('name', $this->search_input, TRUE, 'OR');
$criteria->compare('title', $this->search_input, TRUE, 'OR');
$criteria->compare('desc', $this->serach_input, TRUE, 'OR');
$result = MyModel::model()->findAll($criteria);