我在CakePHps FormHelper中覆盖默认模板时遇到了一些问题。 正如here所解释的,可以简单地使用" setTemplates" -method来使用自定义的div包装器。
然而,当我添加
$this->Form->setTemplates(['inputContainer' => '<div class="custom-class">{{content}}</div>']);
到我的模板文件,我收到一些PHP警告:
警告(2):substr()期望参数1为字符串,给定数组 [CORE \ src \ View \ Helper \ FormHelper.php,第2455行]
警告(2):explode()期望参数2为字符串,给定数组 [CORE \ src \ View \ Helper \ FormHelper.php,第2459行]
警告(2):array_shift()期望参数1为数组,给定为null [CORE \ src \ View \ Helper \ FormHelper.php,第2460行]
似乎FormViewHelper中存在内部问题。 或者我错过了什么?
答案 0 :(得分:1)
正如文档中提到的,如果您使用的是先前版本而不是cakephp 3.4,请执行:
$myTemplates = [
'inputContainer' => '<div class="form-control">{{content}}</div>',
];
// Prior to 3.4
$this->Form->templates($myTemplates);
这适用于3.4及更高版本:
// versions 3.4 and later
$this->Form->setTemplates($myTemplates);