Rob*_*ini 0 php math arithmetic-expressions yii2
我有一个使用Yii2 find()函数创建的数组(称为产品),有两个字段(称为名称和价格),我需要做一个简单的算术加法:price + 5.但我不知道该怎么做.
使用SQL很容易但是使用Yii2我不知道如何解决它.
$products = Products::find()
->select([
'name',
'price',
'price' + 5
])
->asArray()
->all();
Run Code Online (Sandbox Code Playgroud)
原因是因为你不需要引用表达式,只需\yii\db\Expression()在你的select()语句中使用如下所示
$products = Products::find()
->select(['name','price',new \yii\db\Expression('price+5')])
->asArray()
->all();
Run Code Online (Sandbox Code Playgroud)
你甚至可以用它来排除对价格的折扣,如果price和discount是表中的字段,见下文.
$products = Products::find()
->select(['name', 'price', new \yii\db\Expression('price - discount')])
->asArray()
->all();
Run Code Online (Sandbox Code Playgroud)
除了上面使用的语法之外,您还可以将整个selet语句包装在Expressionlike中
->select([new \yii\db\Expression('name, price, price + 5')])
Run Code Online (Sandbox Code Playgroud)