0

Zendフォームの作成を開始しました:

$form = new Form_ChangePersonalDetails(
                     array( 'person'=>$person,
                            'emailvalidator'=>$validator,
                              ));

人がオブジェクトであるところ。警告が表示されますが、機能します。

Warning: htmlspecialchars() expects parameter 1 to be string, object given 

どういうわけかこの警告を取り除くことは可能ですか?

4

2 に答える 2

1

デフォルトでは、のコンストラクターに渡された認識されないオプションは、タグZend_Formに追加される追加のフォーム属性として扱われます。<form>

可能であれば__toString()、クラスにメソッドを追加Personして文字列にキャストできるようにします。または、そのオブジェクトで何をしようとしているのかによってはZend_Form::__construct()、特別なオブジェクトを渡したことを認識できるようにオーバーライドする必要があります。Zend_Form::__construct()フォームコンストラクタに渡される他のオプションを処理するために呼び出す前に、それを処理します。

そのオブジェクトをフォームコンストラクターに渡すことで、特に何をしようとしていますか?

于 2012-05-16T18:15:09.113 に答える
0

独自のコンストラクターを実装する必要があります!:) 言う

public function __construct($person, $emailValidator, $options) {
    parent::__construct($options);
    $this->_person = $person;
    //or if you want to fill the form with the object's data
    $this->populate($person->toArray());
    $this->emailField->addValidator($emailValidator);
}
于 2012-05-18T21:37:32.673 に答える