findAll () в yii

Таблица адресов электронной почты:

id email_id to from 1 101 uk msm 2 102 uu avc 3 101 rk uk 4 103 xyz abc 5 104 xyz poi 6 104 abc xyz 7 101 xyz abc 

Теперь в Yii я хочу записать, где email_id = 101 Я использую код ниже, но он не работает.

 $id =101; $criteria = new CDbCriteria(); $criteria->addCondition("email_id < :email_id"); $comments = EmailArchive::model()->findAll($criteria, array(':email_id' => $id,)); 

    Пытаться:

     $id =101; $comments = EmailArchive::model()->findAll( array("condition"=>"email_id = $id","order"=>"id")); 

    ИЛИ

     $id =101; $criteria = new CDbCriteria(); $criteria->addCondition("email_id=:email_id"); $criteria->params = array(':email_id' => $id); $comments = EmailArchive::model()->findAll($criteria); 

    ИЛИ

     $Criteria = new CDbCriteria(); $Criteria->condition = "email_id = $id"; $Products = Product::model()->findAll($Criteria); 

    Чтобы добавить альтернативу, вы также можете сделать это:

     $id =101; $criteria = new CDbCriteria(); $criteria->condition = "email_id =:email_id"; $criteria->params = array(':email_id' => $id); $comments = EmailArchive::model()->findAll($criteria); 

    Если вы используете findAll() , я рекомендую вам использовать это:

     $data_email = EmailArchive::model()->findAll( array( 'condition' => 'email_id = :email_id', 'params' => array(':email_id' => $id) ) ); 

    Еще один простой способ получить с помощью findall в yii

     $id =101; $comments = EmailArchive::model()->findAll(array("condition"=>"':email_id'=$id")); foreach($comments as $comments_1) { echo "email:".$comments_1['email_id']; } 

    Это ваш самый безопасный способ сделать это:

     $id =101; //$user_id=25; $criteria=new CDbCriteria; $criteria->condition="email_id < :email_id"; //$criteria->addCondition("user_id=:user_id"); $criteria->params=array( ':email_id' => $id, //':user_id' => $user_id, ); $comments=EmailArchive::model()->findAll($criteria); 

    Обратите внимание: если вы закомментируете прокомментированные строки, вы получите способ добавить дополнительную фильтрацию в свой поиск.

    После этого рекомендуется проверить, есть ли какие-либо данные:

     if (isset($comments)) { // We found some comments, we can sleep well tonight // do comments process or whatever } 
     $id = 101; $sql = 'SELECT * FROM ur_tbl t WHERE t.email_id = '. $id; $email = Yii::app()->db->createCommand($sql)->queryAll(); var_dump($email); 

    если вы используете критерии пользователя, я рекомендую использовать удар:

     $criteria = new CDbCriteria(); $criteria->compare('email_id', 101); $comments = EmailArchive::model()->findAll($criteria); 

    Используйте приведенный ниже код. Это должно сработать.

     $comments = EmailArchive::find()->where(['email_id' => $id])->all();