Yii2: Как сделать математическое сложение в простом ответе find ()?

У меня есть массив (называется товары) создан с Yii2 находить() функция с двумя полями (называется название а также цена) и мне нужно сделать простое арифметическое добавление: цена + 5. Но я не знаю, как это сделать.

Использовать SQL очень просто, но с Yii2 я не знаю, как его решить.

$products = Products::find()
->select([
'name',
'price',
'price' + 5
])
->asArray()
->all();

0

Решение

Причина в том, что вам нужно не цитировать выражение , просто используйте \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')])
5

Другие решения

Выберите ваш столбец в качестве дополнительного поля: https://www.yiiframework.com/doc/guide/2.0/en/db-active-record#selecting-extra-fields

1

Вы можете попробовать это

->select("name,price, price + 5")
0
По вопросам рекламы [email protected]