yii2 activerecord find where - Несколько условий - на значение атрибута (колонки) + NOT IN с массивом -- пример кода
Primary tabs
Вот пример функции, которая тянет через ActiveRecord данные по нескольким условиям (здесь два) - по аналогии их может быть и три и больше:
/** * Вернёт массив данных о клиентах указанного пользователя, * неизвестных запрашивающей стороне * * @param int $id -- id товарища, работающего с этими клиентами * @param array $exceptArray -- список id клиентов, о которых запрашивающей системе уже известно * @return array */ public function getNewClients($user_id, $exceptArray) { return Client::find() ->where(['user_id' => $user_id]) // просто условие - 1-ое ->andWhere(['not in', 'id', $exceptArray]) // NOT IN - 2-е условие ->all(); }
Кстати, можно получить все это в виде массива:
$clients = Client::find() ->where(['user_id' => $user_id]) // просто условие ->andWhere(['not in', 'id', $exceptArray]) // NOT IN ->all(); // будем перегонять в массив $arrayData = ArrayHelper::toArray($clients, [ 'common\models\Client' => [ // указываем модель (activerecord) "server_id" => => 'id', // новое поле (в частности - просто другое имя, но "name", // остальные поля просто выгружаем =) "surname", "email", "create_time", "dob", "gender", "address", "phone", "skype", "comments"], ]); return $arrayData;
- Log in to post comments
- 9352 reads