将cakephp2迁移到3:save按钮(表单助手)的Before/after属性

将cakephp2迁移到3:save按钮(表单助手)的Before/after属性,php,cakephp,cakephp-3.x,Php,Cakephp,Cakephp 3.x,将cakephp2.x迁移到3.x,在提交按钮中,cakephp2.x具有after和before属性,但这在cakephp3.x上不起作用 <?php echo $this->Form->submit(__('Save'), array( 'div' => 'form-actions', 'class' => 'btn btn-large btn-primary btn-save', 'data-loading-text' => '

将cakephp2.x迁移到3.x,在提交按钮中,cakephp2.x具有after和before属性,但这在cakephp3.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在submit按钮中获取after按钮?

您可以在创建
submit
时使用自定义
模板。要使用自定义的
模板
,您需要将
FormHelper::input
'type'=>'submit'
方法一起使用,而不是
FormHelper::submit
方法

您希望修改容器模板(
submitContainer
)以插入链接(并添加
formactions
类,因为在CakePHP 3中不存在
div
选项):

$after=$this->Html->link('Cancel'),
['admin'=>true,'action'=>index'],
['class'=>'btn btn large']
);
$this->Form->input('Save')[
'类型'=>'提交',
'class'=>'btn btn大btn主btn保存',
'数据加载文本'=>'请稍候…',
“模板”=>[
“submitContainer'=>”{{content}.$after.”
]
]);
有一种方法可以访问某些容器模板(例如,
inputContainer
),不幸的是,到目前为止(CakePHP 3.1.6),它不适用于
submitContainer
(这并没有真正的文档记录,但查看其源代码可以看出,对于
submit
输入,您永远无法访问)

$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>'
    ]
]);