[CakePHP3.1] FormHelperが出力するHTMLを変更

FormHelperのinput()メソッドを使用してINPUTタグなどを出力すると、DIVタグとかに囲まれた状態で出力されてしまいます。そのDIVタグとかの部分が邪魔だったので消す方法を調べたら、方法がちゃんとあったので忘れないように書いておきます。

フォーム部品のテンプレート

出力されるHTMLにテンプレートがあり、それをカスタマイズすることが出来るようです。
src/View/AppView.phpのinitialize()中でテンプレートの変更が行えました。

    
public function initialize()
{
    $myTemplates = [
        'inputContainer' => '{{content}}'
    ];

    $this->Form->templates($myTemplates);
   
     /*
     変更前
   'inputContainer' => '
{{content}}

‘ */ }

CakePHP 3.1の場合はtemplates()メソッドを使用します。
INPUTタグを囲っていたDIVは’inputContainer’だったようです。
変更前は’

{{content}}

‘で、{{content}}の部分がINPUTタグが置き換わるようなので、その周りを全て消したらいけました。

最後に

submitボタンを囲っているdivも、’submitContainer’に対して上記と同じことをすれば消せます。
囲っているdivを消す以外にも、部品のデザインを変更する際もテンプレートを変更する感じでしょう。
テンプレートの変更については、他にも方法があるみたいです。

公式-FormHelper で使用するテンプレートのカスタマイズ