这很奇怪,我在注册表单中有一个文本输入,当我在模型中设置$ validate数组时,我得到一个trim()错误 - 警告(2):trim()期望参数1是字符串,数组[CORE \ Cake \ View \ Helper.php,第754行]
表格输入
<?=$this->Form->input("lastname", array("label" => array("text" => "Last name *"), "class" => "required", "div" => array("class" => array("input text last")))); ?>
模型验证数组
public $validate = array(
'lastname' => array(
'required' => array(
'rule' => array('notEmpty'),
'message' => 'Last name is required'
)
)
);
似乎当我为该字段执行验证规则时,div样式数组 - “div”=&gt; array(“class”=&gt; array(“input text last”))导致错误。我将以下代码添加到Helper.php文件中作为解决方法:
if(is_array($options["class"])) {
$options["class"] = $options["class"][0];
}
但我想知道它导致此错误的原因。
答案 0 :(得分:2)
Form Helper的嵌套数组太多。试试这个:
$this->Form->input("lastname", array(
"label" => "Last name",
"id" => "MyInputDiv",
"class" => "input text last required"));
array("text" => "Last name *")
如果您只是设置标签的文本值,则此处不需要数组。数组是为html属性保留的。
"div" => array("class" => array("input text last"))
在formHelper中不熟悉这个。也许您正在寻找before
和after
属性来设置元素here的包装div。