Zend 2 Annotations ComposedObject 不采用字段集属性

Zend 2 Annotations ComposedObject doesn't adopt fieldset attributes

我正在尝试创建一个 references 单独 fieldsets[= 的 zend 表单38=] 完全使用注解。我正在使用 ComposedObject 注释来执行此操作。但是字段集 classes 中没有注释(如 \type 或 \attributes)似乎是 added/used.

仅使用 parent 形式的注释。

例如,如果我要将 @Annotation\Type("number") 添加到 parent 表单 class,则输入类型将正确设置为 type="number"但是,如果我要将 @Annotation\Type("number") 添加到字段集 class,那么什么都没有,nada,我得到的是 type=""。我不知道为什么!!

这是我的 parent 表格:

<?php
namespace Permits\Form;

use Zend\Form\Annotation as Form;

/**
 * @Form\Name("trips")
 * @Form\Attributes({"method":"post"})
 * @Form\Type("Permits\Form\Form")
 */
class TripsForm
{


    /**
     * @Form\Name("numberOfTrips")
     * @Form\ComposedObject("Permits\Form\Model\Fieldset\numOfTrips")
     */
    public $numberOfTrips = null;


}

这是字段集 class Permits\Form\Model\Fieldset\numOfTrips:

<?php
namespace Permits\Form\Model\Fieldset;

use Zend\Form\Annotation as Form;
/**
 * @Form\Name("numOfTrips")
 * @Form\Attributes({
 *     "class": ""
 * })
 */
class numOfTrips
{

    /**
     * @Form\Attributes({
     *   "class" : "input--trips",
     * })
     * @Form\Options({
     *     "label": "",
     * })
     * @Form\Type("number")
     *
     */
    public $numOfTrips = null;

}

我正在使用以下方法创建表单:

$builder = new AnnotationBuilder();
$form = $builder->createForm('Permits\Form\TripsForm');

如有任何帮助或指导,我将不胜感激。

对于ComposedObject你需要在"target_object"上传递你的对象,如果有集合,则设置“is_collection”键。

我已经编辑如下,

 class TripsForm
  {
    /**
     * @Form\Name("numberOfTrips")
     * @Form\ComposedObject({"target_object":"Permits\Form\Model\Fieldset\numOfTrips", "is_collection": true})
     */
    public $numberOfTrips = null;


    }

使用完整路径也很好 即:@Form\Type("Zend\Form\Element\Number")

别担心,我最终找到了解决方案

问题不是我使用注释的方式,而是出于某种原因,我在视图中呈现表单的方式。

我对每个我认为应该有效的元素都使用了 $this->formRow($form->get('element'));

仅使用 $this->form($form); 似乎可以解决问题(不知道为什么)