yii2 AvtiveRecord find asArray() - Получение данных в виде массива - список id сразу при запросе (одномерный) -- пример кода
Primary tabs
Пример функции:
/** * Получит массив id клиентов данного пользователя * * @param array массив id */ public static function getClientsIdsOfThisUser($userId) { Client::find()->select('id') ->where(['user_id' => $userId])->asArray()->all(); }
На самом деле такой пример вернёт двумерный массив -- в каждом подмасссиве будет только один элемент, чтобы же получить просто список (одномерный массив) придётся дополнительно обходить результат работы ActiveRecord, то есть сделать что-то вроде:
public static function getClientsIdsOfThisUser($userId) { $result = []; $filedName = 'id'; $twoDemisArray = Client::find()->select('id') ->where(['user_id' => $userId])->asArray()->all(); foreach ($twoDemisArray as $key => $val) { $result[] = $val[$filedName]; } return $result; }
Если же данные уже извлечены как объекты и/или требуется более сложный алгоритм построения массива, то см. сюда
.
- Log in to post comments
- 9332 reads