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

avatar
sam curb
9 августа 2021 в 07:10
216
1
1

Я новичок в 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)

avatar
Alex
9 августа 2021 в 07:48
3

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

$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);