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
- 9526 reads