Ошибка встроенной формы Symfony 3.4: это значение должно иметь тип - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь создать форму, которая будет включать в себя поля из другой.У меня есть юридическое лицо и юридическое лицо.Когда администратор создает клиента, он также должен иметь возможность ввести свой адрес.Следил за документами, потому что это мой первый раз.И это выглядит так:

Сущность Клиент

//
     /**
         * @var string
         *
         * @Assert\Type(type="AppBundle/Entity/HAddress")
         * @Assert\Valid
         */
        private $address;
//

Есть еще несколько полей.Сущность HAddress также проста:

/**
 * @var string
 * @Assert\NotBlank()
 * @ORM\Column(name="house_number", type="string", length=200, nullable=true)
 */
private $houseNumber;

/**
 * @var string
 * @Assert\NotBlank()
 * @ORM\Column(name="street", type="string", length=200, nullable=true)
 */
private $street;

/**
 * @var string
 * @Assert\NotBlank()
 * @ORM\ManyToOne(targetEntity="AppBundle\Entity\HCity", inversedBy="addresses")
 */
private $city;

И у меня есть формы.Форма клиента:

public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('username', TextType::class)
            ->add('password', PasswordType::class)
            ->add('firstName', TextType::class)
            ->add('lastName', TextType::class)
            ->add('personalId', NumberType::class)
            ->add('address', HAddressType::class) // This one is embedded
            ->add('phone', NumberType::class)
            ->add('email', EmailType::class)
            ->add('trase', NumberType::class)
            ->add('edNumber', NumberType::class)
            ->add('limitPow', NumberType::class)
            ->add('deviceId', NumberType::class)
            ->add('active', CheckboxType::class)
            ->add('type', NumberType::class)
            ->add('group', EntityType::class, [
                'class' => 'AppBundle\Entity\Group'
            ]);
    }

    /**
     * {@inheritdoc}
     */
    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => Customer::class
        ));
    }

    /**
     * {@inheritdoc}
     */
    public function getBlockPrefix()
    {
        return 'appbundle_customer';
    } 

Форма предоставляется в порядке.Все поля есть.Но когда я отправляю форму, она не передает isValid () в моем контроллере и возвращает ошибку:

Это значение должно иметь тип AppBundle / Entity / HAddress.

Itуказывает на поле customer.addres.Что сумасшедшего, так это:

image forms snapshot">

В этом снимке (Profiler-> формы) вы можете увидеть адрес системы, распознаваемый как данные сущности HAdress.

Что означает эта ошибка, чем?Что я делаю не так?

...