如何向symfony表达式验证器添加自定义函数。例如,我编写了以下表达式:"value in array_keys(this.getValues())"并希望添加array_keys函数。
我创建了自定义表达式语言类
<?php
declare(strict_types=1);
namespace App\ExpressionLanguage;
use Symfony\Component\ExpressionLanguage\ExpressionFunction;
use Symfony\Component\ExpressionLanguage\ExpressionLanguage as BaseExpressionLanguage;
class ValidatorExpressionLanguage extends BaseExpressionLanguage
{
/**
* {@inheritdoc}
*/
protected function registerFunctions()
{
parent::registerFunctions();
$this->addFunction(ExpressionFunction::fromPhp('array_keys'));
}
}但仍然有错误。
发布于 2018-06-10 11:41:28
决议:
validator.expression:
class: Symfony\Component\Validator\Constraints\ExpressionValidator
arguments:
'$expressionLanguage': '@App\ExpressionLanguage\ValidatorExpressionLanguage'
tags:
- { name: 'validator.constraint_validator', alias: 'validator.expression' }https://stackoverflow.com/questions/50782963
复制相似问题