Symfony ExpressionLanguage 用破折号评估字符串
Symfony ExpressionLanguage evaluate string with dashes
我正在尝试使用 symfony ExpressionLanguage 组件评估一些包含破折号的字符串。
这是我到目前为止得到的:
...
$string = 'user.chuck-norris.getId()';
$language = new ExpressionLanguage();
$evaluated = $language->evaluate($expression, $users);
...
这 returns 我出现以下错误 :
Variable "norris" is not valid around position 12. (Symfony\Component\ExpressionLanguage\SyntaxError)
如果我用下划线“_”更改破折号“-”,这可行,但我有使用破折号的 slug 系统,如果可以避免,我不会更改它。
有什么解决办法吗?
谢谢
如 Yonel 所述,破折号被解释为运算符。
所以为了让它起作用,我只需要用下划线替换破折号
$string = 'user.chuck-norris.getId()';
然后在发出请求之前,将 _ 替换为 -
$value = str_replace('_', '-', $value);
我正在尝试使用 symfony ExpressionLanguage 组件评估一些包含破折号的字符串。
这是我到目前为止得到的:
...
$string = 'user.chuck-norris.getId()';
$language = new ExpressionLanguage();
$evaluated = $language->evaluate($expression, $users);
...
这 returns 我出现以下错误 :
Variable "norris" is not valid around position 12. (Symfony\Component\ExpressionLanguage\SyntaxError)
如果我用下划线“_”更改破折号“-”,这可行,但我有使用破折号的 slug 系统,如果可以避免,我不会更改它。
有什么解决办法吗?
谢谢
如 Yonel 所述,破折号被解释为运算符。
所以为了让它起作用,我只需要用下划线替换破折号
$string = 'user.chuck-norris.getId()';
然后在发出请求之前,将 _ 替换为 -
$value = str_replace('_', '-', $value);