У меня есть массив (называется товары) создан с Yii2 находить() функция с двумя полями (называется название а также цена) и мне нужно сделать простое арифметическое добавление: цена + 5. Но я не знаю, как это сделать.
Использовать SQL очень просто, но с Yii2 я не знаю, как его решить.
$products = Products::find()
->select([
'name',
'price',
'price' + 5
])
->asArray()
->all();
Причина в том, что вам нужно не цитировать выражение , просто используйте \yii\db\Expression()
внутри вашего select()
утверждение как ниже
$products = Products::find()
->select(['name','price',new \yii\db\Expression('price+5')])
->asArray()
->all();
Вы даже можете использовать его, чтобы исключить скидку на цену, если price
а также discount
поля таблицы, см. ниже.
$products = Products::find()
->select(['name', 'price', new \yii\db\Expression('price - discount')])
->asArray()
->all();
Помимо синтаксиса, использованного выше, вы также можете обернуть весь оператор selet внутри Expression
лайк
->select([new \yii\db\Expression('name, price, price + 5')])
Выберите ваш столбец в качестве дополнительного поля: https://www.yiiframework.com/doc/guide/2.0/en/db-active-record#selecting-extra-fields
Вы можете попробовать это
->select("name,price, price + 5")