Symfony ExpressionLanguage оценивает строку с тире

Я пытаюсь оценить некоторые строки, содержащие тире с Symfony ExpressionLanguage составная часть.

Вот что у меня так далеко:

...
$string = 'user.chuck-norris.getId()';

$language = new ExpressionLanguage();
$evaluated = $language->evaluate($expression, $users);
...

Это возвращает мне следующую ошибку:

Variable "norris" is not valid around position 12. (Symfony\Component\ExpressionLanguage\SyntaxError)

Если я меняю тире «-» подчеркиванием «_», это работает, но у меня есть система слизней, которая использует тире, и я не буду менять ее, если смогу избежать этого.

Есть ли решение?

Спасибо

1

Решение

Как заявлено Йонелем, тире интерпретируются как оператор.

Таким образом, чтобы это работало, я просто должен заменить черточки на undescores

$string = 'user.chuck-norris.getId()';

И затем, прежде чем сделать запрос, замените _ на —

$value = str_replace('_', '-', $value);
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]