Миграция 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?
Вы можете использовать обычай template
когда вы создаете свой submit
, Использовать кастом template
, вам нужно использовать FormHelper::input
с 'type' => 'submit'
метод вместо FormHelper::submit
метод.
Вы хотите изменить шаблон контейнера (submitContainer
), чтобы вставить вашу ссылку (и добавить form-actions
класс, потому что div
опция не существует в CakePHP 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
вход, вы никогда не достигнете соответствующий код).
Других решений пока нет …