迁移CakePHP 2到3:保存按钮的前/后属性(表单助手)
作者:互联网
将CakePHP 2.x迁移到3.x,在提交按钮CakePHP 2.x中有属性之后和之前,但这对CakePHP 3.x无效.
<?php
echo $this->Form->submit(__('Save'), array(
'div' => 'form-actions',
'class' => 'btn btn-large btn-primary btn-save',
'data-loading-text' => 'Please Wait...',
'after' => ' ' . $this->Html->link(__('Cancel'), array('admin' => true, 'action' => 'index'), array('class' => 'btn btn-large'))
)); ?>
请帮助我,如何使用CakePHP 3.x获取提交按钮中的后续按钮?
解决方法:
您可以在创建提交时使用自定义模板.要使用自定义模板,您需要使用FormHelper :: input with’type’=> ‘submit’方法而不是FormHelper :: submit方法.
您想修改容器模板(submitContainer)以插入您的链接(并添加form-actions类,因为CakePHP 3中不存在div选项):
$after = $this->Html->link(__('Cancel'),
['admin' => true, 'action' => 'index'],
['class' => 'btn btn-large']
);
$this->Form->input (__('Save'), [
'type' => 'submit',
'class' => 'btn btn-large btn-primary btn-save',
'data-loading-text' => 'Please Wait...',
'templates' => [
'submitContainer' => '<div class="submit form-actions">{{content}}'.$after.'</div>'
]
]);
有一种方法到add additional template variables到一些容器模板(例如inputContainer),不幸的是截至目前(CakePHP 3.1.6)它不适用于submitContainer(这没有真正记录,但是看看FormHelper
的来源,你可以看到对于提交输入,您永远不会达到the relevant code).
标签:php,cakephp,cakephp-3-x 来源: https://codeday.me/bug/20190702/1356453.html