Pages

2011年3月18日金曜日

PHP Zend_Formに動的な値を渡す方法

これがなかなかしっくりこなかった。。
やっと解った!!


やっぱりインスタンスを作成する時に渡すんだった。

まずはZend_Formを継承したクラスに受け取る用のmethodを追加する。

class MemberController extends Zend_Controller_Action
{
protected $_foo;

public function init ()
{
$this->addElement('text', 'bar', array(
'validators' => array(
array(
'Db_NoRecordExists',
true,
array(
'foo',
'email',
array('foo_id', $this->_foo))
),
),
));
}

public fucntion setFoo ($foo)
{
$this->_foo = $foo;
}
}


そしてこんな感じで渡してあげる。
これでスッキリ完璧♪


$foo = '1234';
$form = new Application_Form_Foo(array('foo' => $foo);


ちなみに以下は予約されているので、関数名が重複しないように注意。

'Options', 'Config', 'PluginLoader', 'SubForms', 'Translator','Attrib', 'Default'

0 件のコメント:

コメントを投稿

Followers