2013-09-24 4 views

ответ

1

Использование addInCondition для таких сценариев.

$emails = '[email protected],[email protected]'; 
$emailsArray = explode(',', $emails); 
$criteria = new CDbCriteria(); 
$criteria->addInCondition("email", $emailsArray); 
$users = User::model()->findAll($criteria); 
+0

Как я могу хранить '«[email protected]», 'test1 @ gmail.com'' в '$ email', так что я могу добавить гораздо больше идентификаторов электронной почты динамически. – overflow

+0

@Setout Ответ обновлен, надеюсь, он вам поможет. –

1

Это зависит от того, чего вы хотите достичь. Если вы хотите посмотреть все пользователи с соответствующими адресами, вы можете использовать explode для преобразования разделенных запятыми список в массив:

$emails = explode(',', $email); 
$users = User::model()->findAllByAttributes(array('email'=>$emails)); 
0

вы можете попробовать этот путь ...

$email1="[email protected]"; 
$email2="[email protected]"; 
$users = User::model()->findAllByAttributes(array('email'=>array($email1,$email2))); 
print_r($users); 

если вы хотите чтобы проверить несколько сообщений электронной почты затем использовать CDbCriteria ..

addInCondition() это лучший способ ...

для экс ..

$email = '[email protected],[email protected]'; 
$emails = explode(',',$email); 
$criteria->addInCondition('email',$emails); 
$user=User::model()->findAll(array($criteria))); 
print_r($users); 

не пробовал этот код практически, но надеюсь, что она может работать/помощь вам ...

+0

У меня может быть более, что 10 писем в таком случае, как это работает без петли – overflow

+0

только что обновил свой ответ .. это может решить вашу проблему – Kalpit

Смежные вопросы