2017-02-07 13 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

То, что вы показываете, в значительной степени является результатом по умолчанию, за исключением атрибута class и отсутствующего атрибута for на этикетке. Так что вы хотите изменить, скорее всего, не является nestingLabel шаблон, конечно, не radioWrapper один:

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

Если вы хотите удалить атрибут for, то вам придется удалить {{attrs}} заполнитель, что путь не дальше атрибуты могут быть добавлены в элемент 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 
]); 
?> 

Надеюсь, что это решение поможет другим в будущем.