1

这很奇怪,我在注册表单中有一个文本输入,当我在模型中设置 $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" => array("class" => array("input text last")) 导致错误。我将以下代码添加到 Helper.php 文件作为解决方法:

if(is_array($options["class"])) {
            $options["class"] = $options["class"][0];
        }

但我想知道它为什么会导致这个错误。

4

1 回答 1

2

表单助手的嵌套数组太多。尝试这个:

$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。也许您正在寻找beforeafter属性来设置元素的包装div

于 2012-12-04T21:52:41.860 回答