Symfony ExpressionLanguage用破折号计算字符串


Symfony ExpressionLanguage evaluate string with dashes

我试图用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)

如果我用下划线"_"来改变破折号"-",这是有效的,但是我有一个使用破折号的分段系统,如果我可以避免它,我不会改变它。

有解决办法吗?

谢谢

如Yonel所述,破折号被解释为操作符。

因此,为了使其工作,我只需要将破折号替换为uncores

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

然后在发出请求之前,将_替换为-

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