2017-02-07 3 views
0

構造を変更したいのですが、機能しません。常に同じ構造です。あなたは私の問題を解決する方法について考えていますか?ラジオボタンを変更するCakePHPを使用してテンプレートを入力する3

<?php 
$default = 'wepay'; 
$options = array('wepay' => 'WePay', 'paypal' => 'Paypal', 'donorbank' => 'Donor Bank'); 
echo $this->Form->input('payment_method', [ 
    'templates' => [ 
     'radioWrapper' => '<label class="radio-inline">{{label}}</label>'], 
    'type'  => 'radio', 
    'options' => $options, 
    'default' => $default 
]); 
?> 

しかし、このコードでは出力が正しく生成されません。私は以下のような出力を生成します:

<label class="radio-inline"> 
    <input type="radio" name="payment_method" value="wepay" id="payment-method-wepay" checked="checked">WePay 
</label> 
<label class="radio-inline"> 
    <input type="radio" name="payment_method" value="paypal" id="payment-method-paypal">Paypal 
</label> 
<label class="radio-inline"> 
    <input type="radio" name="payment_method" value="donorbank" id="payment-method-donorbank">Donor Bank 
</label> 

マイコードは以下のような出力を生成:

<label class="radio-inline"> 
    <label for="payment-method-wepay"> 
     <input type="radio" name="payment_method" value="wepay" id="payment-method-wepay" checked="checked">WePay 
    </label> 
</label> 
<label class="radio-inline"> 
    <label for="payment-method-paypal"> 
     <input type="radio" name="payment_method" value="paypal" id="payment-method-paypal">Paypal 
    </label> 
</label> 
<label class="radio-inline"> 
    <label for="payment-method-donorbank"><input type="radio" name="payment_method" value="donorbank" id="payment-method-donorbank">Donor Bank 
    </label> 
</label> 

は、ここに1つの余分なラベルフィールドが追加されました。この余分なラベルを削除するにはどうしたらいいですか?どんな種類の助けにも感謝します。前もって感謝します。

答えて

1

ラベルに表示されているのは、class属性とラベルのfor属性がないことを除き、ほとんどの場合、デフォルトの出力があります。それ以上

'nestingLabel' => 
    '{{hidden}}<label class="radio-label"{{attrs}}>{{input}}{{text}}</label>' 

あなたがfor属性を削除したい場合は、あなたが{{attrs}}プレースホルダを削除する必要があります、その方法:だから何あなたはおそらく変更することはnestingLabelテンプレートが確実ではないradioWrapper 1、ではありません属性をlabel要素に追加することができます。

+0

このようにラベルを削除したいのですが、

+0

は可能ですか? – Faisal

+0

@Faisal私はあなたが求めているものを実際に得ていません。あなたは 'for'属性を削除しますか? – ndm

0

最後に、@ndmヒントを使用して私の問題を解決しました。このような最終的な解決策は、

<?php 
$default = 'wepay'; 
$options = array('wepay' => 'WePay', 'paypal' => 'Paypal', 'donorbank' => 'Donor Bank'); 
echo $this->Form->input('payment_method', [ 
    'nestingLabel' => 
     '{{hidden}}<label class="radio-inline"{{attrs}}>{{input}}{{text}}</label>', 
    'type'  => 'radio', 
    'options' => $options, 
    'default' => $default 
]); 
?> 

今後このソリューションが他の人に役立つことを願っています。

関連する問題