2016-10-19 9 views
0

特定の機能が有効であるかどうかを知りたい場合は、JavaScriptで知りたいです。Symfonyフォーム: `false`` attr`を省略していますか?

has*メソッドを持つPHPクラスがあります。

だから、Twigに私はこれを行う:

{{ form_widget(form.plan.seo, {'attr': {'class': 'feature', 'data-already-active': store.premium.hasSeo}}) }} 

私はそれがdata-already-active機能によってはアクティブになっているかいない1から0に設定しますか期待しています。

しかしhas*方法がtrue返す場合、生成されたHTMLはこれです:has*メソッドが返す場合、単にdata-already-active属性を省略しながら

<input type="checkbox" id="form_plan_seo" name="form[plan][seo]" class="feature" data-already-active="data-already-active" value="1" checked="checked"> 

false

<input type="checkbox" id="form_plan_social" name="form[plan][social]" class="feature" value="1"> 

もっと、あなたが見ることができました属性data-already-activeの値が0または1でなく、trueまたはではないですが、属性自体の名前です:

data-already-active="data-already-active" 

これは正常ですか?私はcheckboxにこの情報を設定するより良い方法を持っていますか?

答えて

0

これは、twigのattrs値にブール値の値を代入すると通常のように見えます。

{{ form_widget(form.plan.seo, {'attr': {'class': 'feature', 'data-already-active': store.premium.hasSeo ? "1" : "0"}}) }} 

か、これはあなたの現在の小枝の定義で作業しているしたい場合は、フォームテンプレートに文字列ロジックにこのブール値を移動することができます簡単な回避策は、コードを少し変更することであろう。

+0

私は、このユースケースで最も簡単で最も実践的なのは三項演算子の使用だと思います。ありがとうございました! – Aerendir

関連する問題