我正在制作一个带有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字段 假>只设置了主窗体。
我检查了所有数据并且它存在。
我认为它与保湿剂有关。 有人可以在这里给我一些建议吗?
答案 0 :(得分:-1)
我无法准确地解决您的问题,最后一部分是什么意思"如果我使用setUseAsBaseFieldset选项,则true-> fieldset字段仅设置为false->只设置了主窗体。" 但here是同一实现的工作示例,即fieldset和ObjectPropertyHydrator。 希望它有所帮助