Zend 2 Аннотации ComposedObject не принимает атрибуты fieldset

Я пытаюсь создать Zend форму, которая Рекомендации отдельный fieldsets полностью используя аннотации. Я делаю это с помощью ComposedObject аннотаций. Но никакие аннотации (например, \ type или \ attribute) внутри классов fieldset не добавляются / не используются.

Используются только аннотации из родительской формы.

Например, если бы я должен был добавить @Annotation\Type("number") в родительский класс Form, тогда тип ввода будет правильно установлен type="number", тем не мение, если бы я должен был добавить @Annotation\Type("number") в класс fieldset, то ничего, нада, я получаю type="" вместо. И я не могу понять, почему!

Вот моя родительская форма:

<?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;


}

Вот класс fieldset 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');

Буду благодарен за любую помощь или указание.

0

Решение

За 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")

0

Другие решения

Не волнуйтесь, ребята, я нашел решение в конце концов

Проблема была не в том, как я использовал аннотации, а в том, почему я по какой-то причине отображал форму в представлении.

Я использовал $this->formRow($form->get('element')); для каждого элемента, который должен работать на мой взгляд.

Используя только $this->form($form); вместо этого, казалось, это исправить (понятия не имею, почему)

0

По вопросам рекламы [email protected]