【问题标题】:CakePHP 2.2 validation trim() errorCakePHP 2.2 验证 trim() 错误
【发布时间】:2012-12-04 21:42:20
【问题描述】:

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

但我想知道为什么会导致此错误。

【问题讨论】:

    标签: cakephp trim cakephp-2.2


    【解决方案1】:

    Form Helper 的嵌套数组过多。试试这个:

    $this->Form->input("lastname", array(
        "label" => "Last name", 
        "id" => "MyInputDiv",
        "class" => "input text last required"));
    

    array("text" =&gt; "Last name *") 如果只是设置标签的文本值,这里不需要数组。数组是为html属性保留的。

    "div" =&gt; array("class" =&gt; array("input text last"))这个formHelper不熟悉。也许您正在寻找 beforeafter 属性来设置元素 here 的包装 div。

    【讨论】:

    • 是的,这就是问题 "div" => array("class" => array("input text last")) 应该是 "div" => array("class" => "最后输入文本")
    猜你喜欢
    • 1970-01-01
    • 2016-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多