サイバーセキュリティを勉強していく漢

【cakephp】->Form()のcontrol()

cakephpcontrol()カスタム

control()の出力を自在に操りたい。

そんな時は

vendor/cakephp/cakephp/src/View/Helper/FormHelper.phpの

$_defaultConfig の template を見ると、button やら checkbox やらがある。

これをviewで上書きしてやれば、意図した表示にできる。

例えば、下記はたしかアイコンを入れたくて、inputの後に span で囲った任意のコード(下記のtest)を入れれるようにしたやつ。

$this->Form->setTemplates([
    "inputContainer" => '<div class="input {{type}}{{required}}"> {{content}}<span class="test">{{test}}</span></div>'
]);
echo $this->Form->control("password", [
    "templateVars" => ["test" => "{{test}}に入れたい記述"]
]);

controlの前に、setTemplatesでテンプレートの上書き。

上書き対象”inputContainer”はさっきのFormHelper.phpにあるやつ。

inputContainer のほかにもlabelとかもいろいろ変更できる。

setTemplatesしたあとのcontrol()はすべて上書きしたのが適用されるので注意。

あと、setTemplates()をechoしてはダメ。