Yii2:如何在简单的 find() 响应中进行数学加法?
Yii2: How to do a math addition in a simple find() response?
我有一个用 Yii2 find() 函数创建的数组(称为 products),它有两个字段(称为 name and price) 我需要做一个简单的算术加法:price + 5。但我不知道该怎么做。
使用SQL很简单,但是用Yii2我不知道怎么解决。
$products = Products::find()
->select([
'name',
'price',
'price' + 5
])
->asArray()
->all();
Select 您的列作为额外字段:https://www.yiiframework.com/doc/guide/2.0/en/db-active-record#selecting-extra-fields
你可以试试这个
->select("name,price, price + 5")
原因是因为您需要不引用表达式,只需在您的select()
语句中使用\yii\db\Expression()
,如下所示
$products = Products::find()
->select(['name','price',new \yii\db\Expression('price+5')])
->asArray()
->all();
如果 price
和 discount
是 table 字段,您甚至可以用它来排除价格折扣,见下文。
$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')])
我有一个用 Yii2 find() 函数创建的数组(称为 products),它有两个字段(称为 name and price) 我需要做一个简单的算术加法:price + 5。但我不知道该怎么做。
使用SQL很简单,但是用Yii2我不知道怎么解决。
$products = Products::find()
->select([
'name',
'price',
'price' + 5
])
->asArray()
->all();
Select 您的列作为额外字段:https://www.yiiframework.com/doc/guide/2.0/en/db-active-record#selecting-extra-fields
你可以试试这个
->select("name,price, price + 5")
原因是因为您需要不引用表达式,只需在您的select()
语句中使用\yii\db\Expression()
,如下所示
$products = Products::find()
->select(['name','price',new \yii\db\Expression('price+5')])
->asArray()
->all();
如果 price
和 discount
是 table 字段,您甚至可以用它来排除价格折扣,见下文。
$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')])