Проверка выражения Symfony - PullRequest
0 голосов
/ 10 июня 2018

Как добавить пользовательскую функцию в валидатор выражений 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'));
    }
}

, но все еще получил ошибку. (

1 Ответ

0 голосов
/ 10 июня 2018

Разрешено:

validator.expression:
  class: Symfony\Component\Validator\Constraints\ExpressionValidator
  arguments:
    '$expressionLanguage': '@App\ExpressionLanguage\ValidatorExpressionLanguage'
    tags:
      - { name: 'validator.constraint_validator', alias: 'validator.expression' }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...