是否有任何示例显示如何将InputFilter应用于Fieldset?

时间:2012-08-14 10:43:50

标签: php zend-framework2

我正在创建一个文件上传模块,它实际上会提供一个FieldSet和一个视图助手来显示一个小部件。

我要求Fieldset有一个单独的InputFilter,但我很难找到框架中的任何功能来将InputFilter与Fieldset相关联。

1 个答案:

答案 0 :(得分:2)

您必须实施InputFilterProviderInterface。请参阅下面的示例

use Zend\InputFilter\InputFilterProviderInterface;

class FooFieldset extends Fieldset implements InputFilterProviderInterface
{
   public function __construct() { // add elements }

   public function getInputFilterSpecification()
   {
       return array(
          'elementName' => array(
              'filters' => array(),
              'validators' => array(),
              'properties' => array(),
              'required' => true
          )
       );
   }
}

虽然您告诉表单实际验证您的字段集,但绝对需要。我个人这样做:

class BarForm extends Form
{
    public function __construct()
    {
         // other stuff, add elements and fieldset

         $this->setValidationGroup(array(
             'someElement',
             'someFieldset' => array(
                 'fieldSetElement#1',
                 'fieldSetElement#2'
             )
         ));
    }
}

如果这太抽象,请告诉我,我将使用一个真实的例子来编辑它。应该足够让你开始,我想;)