Как получить yii выберите значения запроса в виде массива

#php #yii2 #laravel-7

Вопрос:

Я очень новичок в yii, так как мы используем pluck() в laravel для получения определенного значения столбца в массиве, как я могу сделать то же самое в yii.Я ожидаю, что значения в массиве будут возвращены как разные объекты

 *********My query **********
$get_coupon_ids=Coupon_categories::find()->select(['coupon_id'])->where(['in', 'category',$category_id])->all();

*****************************

*********OutPut****************

[
        {
            "coupon_id": 13
        },
        {
            "coupon_id": 14
        },
        {
            "coupon_id": 15
        }
]

***************************************

*******Expected value *************

[13,14,15]

*********************************
 

Ответ №1:

Вы можете использовать метод столбца, он вернет первый столбец каждого результата. https://www.yiiframework.com/doc/api/2.0/yii-db-query#column()-подробно

 $get_coupon_ids = Coupon_categories::find()
  ->select(['coupon_id'])
  ->where(['in', 'category', $category_id])
  ->column();
 

или использовать array_map

 $get_coupon_ids = Coupon_categories::find()
  ->select(['coupon_id'])
  ->where(['in', 'category', $category_id])
  ->all();

$ids = array_map(fn($id) => $id['coupon_id'], $get_coupon_ids);