Math expression validator without using eval()
for Yii2.
The preferred way to install this extension is through composer.
Either run
$ composer require zhuravljov/yii2-calc-validator
or add
"zhuravljov/yii2-calc-validator": "*"
to the require
section of your composer.json
file.
public function rules()
{
return [
// ...
// Rule for checking an expression
['amount1', 'zhuravljov\yii\validators\CalcValidator'],
// Rule for checking an expressions with saving result of calculation
['amount2', 'zhuravljov\yii\validators\CalcValidator', 'resultAttribute' => 'amount2'],
// ...
];
}
After adding this validator, expressions can be used in forms.
For example:
12.80 + 3.50 * 2
- valid expression. Result:19.8
.(2 + 2) * 2
- valid expression. Result:8
.(2 + 2
- invalid expression.
This validator checks an expression and saves a result. And it can be used for currency fields or any numeric fields.
More details about calculation of expressions.