Symfony ExpressionLanguage用破折号计算字符串

时间:2016-08-25 11:48:36

标签: php symfony expression evaluate

我正在尝试使用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)

如果我用一个下划线“_”改变短划线“ - ”,这是有效的,但我有一个使用短划线的slug系统,如果我可以避免它,我不会改变它。

有没有解决方案?

由于

1 个答案:

答案 0 :(得分:2)

如Yonel所述,短划线被解释为操作员。

因此,为了实现这一点,我只需要用不受欢迎的颜色替换破折号

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

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

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