php - Yii2:如何在简单的 find() 响应中进行数学加法?
问题描述
我有一个使用 Yii2 find()函数创建的数组(称为products ),其中包含两个字段(称为name和price),我需要做一个简单的算术加法:price + 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
like
->select([new \yii\db\Expression('name, price, price + 5')])
推荐阅读
- python - seaborn : 在 x 轴上绘制时间
- android-studio - 为什么我不能改变按钮的颜色
- regex - 如何在 Google Data Studio 中使用 REGEXP_EXTRACT 提取第一个 / 和第二个 / 之间的所有字符?
- form-recognizer - 表单识别器在单个模型下组合多个自定义模型的限制是什么
- pine-script - 如何在右侧放置指定的斐波那契标签,并缩短线条以不一直延伸到右侧?
- java - 如何在 NetBeans 8.2 RC 中配置代理设置?
- python - 使用 PyTorch 加载 RoBerta 时如何修复严格错误
- postgresql - MADLib + PostgreSQL 查询计划
- c# - 更改文件系统的 Git 操作不会触发 FileWatcher
- python - 线图颜色取决于列表值