複数のサブフォームを含むフォームがあります。フォームの isValid 関数を独自の関数でオーバーライドしましたが、個々のサブフォームごとに isValid 関数を設定する方法に関するドキュメントが見つかりません。
誰かがリンクまたはサンプルコードを投稿して、これを行う方法を学ぶことができますか.
前もって感謝します。
複数のサブフォームを含むフォームがあります。フォームの isValid 関数を独自の関数でオーバーライドしましたが、個々のサブフォームごとに isValid 関数を設定する方法に関するドキュメントが見つかりません。
誰かがリンクまたはサンプルコードを投稿して、これを行う方法を学ぶことができますか.
前もって感謝します。
<?php
class Your_Sub_Form extends Zend_Form_SubForm
{
public function isValid($data)
{
// Your custom validation-logic here
return parent::isValid($data);
}
public function init()
{
...
}
}
class Your_Form extends Zend_Form
{
public function isValid($data)
{
return parent::isValid($data);
}
public function init()
{
$this->addSubForm(new Your_Sub_Form(), 'subform');
$this->addElement('submit', 'submit', array(
'ignore' => true,
'label' => 'Submit',
));
}
}
$form1 = new ..._Form1();
$form2 = new ..._Form2();
if ($form1->isValid($this->getRequest()->getPost())) {
...
}
if ($form2->isValid($this->getRequest()->getPost())) {
...
}
Zend_Validate_Callback http://framework.zend.com/manual/en/zend.validate.set.htmlを使用して、必要な特別なフィールドだけを検証してみてください。コンテキストを介して他のフィールド値にアクセスできます。