symfony - данный объект не является экземпляром класса, в котором было объявлено это свойство - PullRequest
0 голосов
/ 08 октября 2018

Я пытался добавить 'Категории экзамена' в мою форму:

class ExamType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            // ...
            ->add('categories', EntityType::class, [
                'class' => ExamCategory::class,
                'multiple' => true,
                'expanded' => false,
                'label' => 'Kategoria',
                'choice_label' => 'name',
                'query_builder' => function (EntityRepository $er) {
                    return $er->createQueryBuilder('c')
                        ->orderBy('c.name');
                },
            ])
            // ...
        ;
    }
}

Вот сущность ExamCategory:

class ExamCategory
{
    // ...

    /**
     * @ORM\ManyToMany(targetEntity="App\Entity\Exam", mappedBy="categories")
     */
    private $exams;

    // ...

    /**
     * @return Collection|Exam[]
     */
    public function getExams(): Collection
    {
        return $this->exams;
    }

    // ...
}

и базовая сущность экзамена:

class Exam
{
    /**
     * @ORM\ManyToMany(targetEntity="App\Entity\ExamCategory", inversedBy="exams")
     */
    private $categories;

    // ...

    /**
     * @return Collection|ExamCategory[]
     */
    public function getCategories(): Collection
    {
        return $this->categories;
    }

    // ...
}

Я пытался очистить кеш, метаданные из Doctrine, но это не помогло.
Когда я удалил это поле, форма отображается без проблем (пространство имен правильное, я не нашел опечаток).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...