2016-11-08 11 views
1

xmlファイルでExpression Language(EL)を使用するには、表現するパラメータのタイプを指定するだけです。ヤムとエクスプレッション言語

ただし、ymlファイルではこのタイプを指定することはできません。この記事によると:

https://knpuniversity.com/blog/service-expressions

理論的には、私は簡単に表現言語にアクセスできるようにする必要があり、このように:

arguments: 
     - "@=service('doctrine').getRepository('AppBundle:User')" 

私が検証され、コンフィギュレーションが読み込まれる前に、ELが実行されなければならないと仮定します最終的なオブジェクトに渡されます。しかし、それはそうではありません。上記のようなymlファイルでELによって評価されることはありません。

ymlファイルでELを使用するにはどうすればよいですか?設定の検証(バンドルのセマンティック設定を参照)を書いたことがありますか?また、スカラー値だけでなく、式になるという期待を追加する必要がありますか? @=service('doctrine').getRepository('AppBundle:User')

+0

...あなたのsymfonyのバージョンを確認し、私は同じ問題に遭遇しました。それでも答えは見つからなかった。 – Aistis

答えて

0

この機能は、外に動作するはずと同様ymlファイルのために利用可能である:それは上記のように

この設定から得た値をダンプ

は、私は一例で、リテラル値を持つ文字列を参照してくださいボックス。

参照:http://symfony.com/doc/current/service_container/expression_language.html

はたぶん

+0

2.7/2.8です。 – forsberg

+0

それから、http://symfony.com/doc/2.7/service_container/expression_language.html – martin

+0

が動作するはずです。言及したように、xmlファイルで動作します。しかし、yml設定ファイルに "@ = ...."部分を入れると、parameters.ymlという文字列のように扱われます。私がそれを式にしたいのであれば、手動でExpression Languageを最終的なオブジェクトに挿入し、そこにこの文字列を評価する必要があります。これはsymfonyがymlの式xmlファイルの場合と同じです。 – forsberg

関連する問題