2016-08-25 4 views
1

symfony ExpressionLanguageコンポーネントでダッシュを含む文字列を評価しようとしています。私はダッシュを変更する場合はsymfony ExpressionLanguageダッシュ付き文字列を評価する

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

" - " アンダースコア "_"、:

ここ

は、私がこれまで持っているものです:

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

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

これは私に次のエラーを返します。これは動作しますが、私はダッシュを使用するスラグシステムを持っています。私はそれを避けることができれば、ダッシュを変更することはありません。

解決策はありますか?

ありがとう

+2

ダッシュ(算術演算子としてinterpretatedされています減算)http://symfony.com/doc/current/components/expression_language/syntax.html#arithmetic-operators私はユニークな解決策がアンダースコアに変換されていると思います。 – yceruto

+0

はい、これを見ました。私は文字列に引用符(または二重引用符)を追加して、私がうんざりしているように動作させる必要があります。 $ string = '"user.chuck-norris.getId()"';ありがとう。 :) –

答えて

2

Yonelと同様に、ダッシュは演算子として解釈されます。これが機能するので、

、私はちょうどundescores

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

でダッシュを交換し、その要求を行う前に、交換する必要が_による -

$value = str_replace('_', '-', $value); 
関連する問題