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