4

将 CakePHP 2.x 迁移到 3.x,在提交按钮中 CakePHP 2.x 具有 after 和 before 属性,但这不适用于 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 在提交按钮中获取后按钮?

4

1 回答 1

2

您可以template在创建submit. 要使用 custom template,您需要使用FormHelper::inputwith'type' => 'submit'方法而不是FormHelper::submit方法。

您想修改容器模板 ( submitContainer) 以插入链接(并添加form-actions类,因为divCakePHP 3 中不存在该选项):

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

有一种方法可以向某些容器模板(例如)添加额外的模板变量inputContainer,不幸的是,截至目前(CakePHP 3.1.6)它不适用于submitContainer(这并没有真正记录,但查看源代码FormHelper可以看到对于submit输入,您永远不会到达相关代码)。

于 2015-12-23T07:16:10.030 回答