将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获取提交按钮中的后续按钮?
答案 0 :(得分:2)
您可以在创建template
时使用自定义submit
。要使用自定义template
,您需要使用FormHelper::input
'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
的来源,您可以看到,对于submit
输入,您永远不会到达the relevant code。