使用CakePHP 3更改单选按钮输入模板
我想改变结构,但它不起作用,它总是相同的结构。如何解决我的问题使用CakePHP 3更改单选按钮输入模板,php,cakephp,cakephp-3.0,Php,Cakephp,Cakephp 3.0,我想改变结构,但它不起作用,它总是相同的结构。如何解决我的问题 <?php $default = 'wepay'; $options = array('wepay' => 'WePay', 'paypal' => 'Paypal', 'donorbank' => 'Donor Bank'); echo $this->Form->input('payment_method', [ 'templates' => [ 'radioWr
<?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>
我的代码生成如下输出:
这里添加了一个额外的标签字段。如何删除这个额外的标签?除了标签上的class属性和缺少的for属性外,您显示的几乎是默认输出。因此,您最想修改的可能是nestingLabel模板,而不是radioWrapper模板:
如果要删除for属性,则必须删除{{attrs}}占位符,这样就无法向label元素添加更多属性。最后,使用@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
]);
?>
希望此解决方案将来对其他人有所帮助。我想删除这样的标签。有可能吗?@Faisal我真的不明白你的要求。要删除for属性吗?是的,带标签tag@Faisal在这种情况下,从模板中删除{{attrs}}。
'nestingLabel' =>
'{{hidden}}<label class="radio-label"{{attrs}}>{{input}}{{text}}</label>'
<?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
]);
?>