2012-02-13 33 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

相關問題