CakePHP 2.2验证trim()错误

时间:2012-12-04 21:42:21

标签: cakephp trim cakephp-2.2

这很奇怪,我在注册表单中有一个文本输入,当我在模型中设置$ 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];
        }

但我想知道它导致此错误的原因。

1 个答案:

答案 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中不熟悉这个。也许您正在寻找beforeafter属性来设置元素here的包装div。