ZF2 - 表单字段集

时间:2014-05-12 15:20:15

标签: forms zend-framework2 fieldset

我正在制作一个带有Fieldset的表格,我无法使表格与水化器一致。

我有什么:

表格   Base.php     namespace Cms \ Form \ Cms;

use Zend\ServiceManager\FactoryInterface;
use Zend\InputFilter\InputFilterProviderInterface;
use Zend\Authentication\AuthenticationService;
use Zend\Form\Form;
use Zend\Form\Fieldset;

use Zend\Stdlib\Hydrator\ObjectProperty as ObjectPropertyHydrator;


public function __construct( ) {

$this->setAttribute('method', 'post')
     ->setHydrator(new ObjectPropertyHydrator(false)); 

$this->add(array(
    'name' => 'id',
    'type' => 'Hidden',
));
$this->add(array(
      'name' => 'title',
      'type' => 'Text',
      'required' => true,
      'options' => array(
          'label' => _('Menu titel'),
      ),
));
$meta = new \Cms\Form\Cms\Meta('meta');
$meta->setUseAsBaseFieldset(false);
$this->add($meta);

Meta.php

public function __construct($name = null)
{
     parent::__construct('meta');
     $this->setHydrator(new ObjectPropertyHydrator(false)) 
          ->setObject(new \Cms\Entity\MetaEntity());

     $this->setLabel('Meta');

     $this->add(array(
          'name' => 'seo_meta_title',
          'type' => 'Text',
          'options' => array(
             'label' => _('Title'),
          ),
     ));

      }

控制器     ....

$cms = $this->getCmsable()->byId($id);

$form = new Base( 'add' );
$form->bind($cms);

表单工作正常,直到我添加了额外的字段集。 如果我使用setUseAsBaseFieldset选项,则仅设置true-> fieldset字段 假>只设置了主窗体。

我检查了所有数据并且它存在。

我认为它与保湿剂有关。 有人可以在这里给我一些建议吗?

1 个答案:

答案 0 :(得分:-1)

我无法准确地解决您的问题,最后一部分是什么意思"如果我使用setUseAsBaseFieldset选项,则true-> fieldset字段仅设置为false->只设置了主窗体。" 但here是同一实现的工作示例,即fieldset和ObjectPropertyHydrator。 希望它有所帮助