2012-02-13 35 views
0

我在Yii中执行simpleQuery动作至findAll记录匹配至少一个CDbCriteria或必要时匹配一些搜索条件。例如,我希望用户能够通过键入一个字符串来查询我的记录。该字符串应该针对四列中的每一列进行检查,并且结果集应该包括至少有一个与该字符串匹配的列的所有记录(没有重复)。我仍然对Yii很陌生,因此非常感谢任何帮助。Yii全部匹配至少一个条件

回答

2

假设你在模型的$ SEARCH_INPUT领域的搜索输入您想搜索所有的三个字段 - 名称,标题和说明,对于字符串,你可以做 -

$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); 
+0

当你生成一个新的模型和CRUD界面,查看actionAdmin()和model-> search()。你所搜索的是在那里实现的。 – marcovtwout 2012-02-13 10:34:59

+0

谢谢......我甚至都没有意识到内置的'$ searchInput'属性。 – 2012-02-13 20:02:20

+0

@tacos - $ this-> search_input不是内置属性。这只是指您创建的用于捕获用户搜索输入的变量。 – glyph 2013-10-23 18:06:56

相关问题