CakePHP3でFormの中にpostLinkを埋め込みたい場合

CakePHP3には簡単にPost用のFormボタンを生成してくれるpostLinkというタグがあります。

ただこのタグはformタグを生成するため、Formの中に配置することができません。(Formのネストになってしまうため)

その場合は以下のようにします。

<?= $this->Form->create($hoge, ['type' => 'file']) ?>
<?= $this->Form->postLink(__('画像を削除'),
  ['controller' => 'Hoges', 'action' => 'deleteImage', $hoge->id],
  ['block' => true, 'confirm' => __('画像を削除しますか?')]
  )
?>
<?= $this->Form->button(__('保存')) ?>
<?= $this->Form->end() ?>
<?= $this->fetch('postLink') ?>

Formタグの中にpostLinkを埋め込み、オプションとして

‘block’ => true

を指定します。そしてformの外側に

<?= $this->fetch('postLink') ?>

を置くことで、うまいことformタグ自身を外に出すことができます。

参考

http://stackoverflow.com/questions/35007237/how-to-use-formhelperpostlink-inside-of-a-form

ドキュメント

https://book.cakephp.org/3.0/ja/views/helpers/form.html#id43