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 を使用するには、メソッドの代わりにwithメソッドtemplateを使用する必要があります。FormHelper::input'type' => 'submit'FormHelper::submit

コンテナ テンプレート ( submitContainer) を変更してリンクを挿入します (このオプションは CakePHP 3 には存在しないform-actionsため、クラスを追加します)。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>'
    ]
]);

一部のコンテナー テンプレート (例: ) に追加のテンプレート変数を追加する方法がありますがinputContainer、残念ながら現在 (CakePHP 3.1.6) では機能しませんsubmitContainer(これは実際には文書化されていませんがFormHelper、入力の場合、関連するコードsubmitに到達することはありません)。

于 2015-12-23T07:16:10.030 に答える