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 ではこれに慣れていません。おそらく、要素のラッピング div を設定する属性と属性を探しbeforeていたのでしょう。after

于 2012-12-04T21:52:41.860 に答える