2014-01-10 97 views
1

我試圖使用我的模型將信息拉入頁面。問題是我需要使用變量在我的mysql上使用IN條件。Yii使用IN條件的變量

這是我使用目前

$list_id = '1,3'; 
$clients = ListSubscriber::model()->findAll(array('condition'=>'list_id IN (:list_id)','params'=>array(':list_id'=>$list_id))); 

我不一定知道多少個號碼將被存儲內$list_id,因此需要一個變量與IN工作的代碼。

的代碼並執行沒有錯誤,但似乎只爲$list_id第一號返回值,所以在這種情況下,它只能找到其中list_id = 1

任何幫助表示讚賞用戶。我發現這個問題Yii addInCondition 但是他們使用靜態值,這不能解決我的問題。

當我使用靜態值時,代碼將按照預期執行結果。

+0

http://stackoverflow.com/questions/6068006/how-to-used-in-between-clause-in-yii-active-record/ 6107617#6107617 – lascort

回答

3

您可以使用addInCondition:

$list_id = '1,3'; 
$criteria = new CDbCriteria(); 
$arr_list_id = explode(",",$list_id); 
$criteria->addInCondition("list_id ", $arr_list_id); 
$clients = ListSubscriber::model()->findAll($criteria); 
+0

kumar說什麼... – lascort

+0

@lascort這條評論是否對我有用? –

+0

不,我只是備份你的解決方案! – lascort

1
$list_ids = array(1,3); 
$clients = ListSubscriber::model()->findAllByAttributes(array('list_id'=>$list_ids)); 
+0

非常感謝您的回答Voodoo417,我測試了它正在工作,但是我選擇了Kumar_v的答案,因爲Lascort同意他的解決方案。 –