Не удалось определить тип доступа к собственности

Я пытаюсь создать форму с коллекцией сущностей. Вот мой код:

Сущность Colle:

 * @ORM\Table(name = "colle")
 * @ORM\InheritanceType("JOINED")
 * @ORM\DiscriminatorColumn(name = "discr", type = "string")
 * @ORM\DiscriminatorMap({"colle" = "Colle","colleQC" = "ColleQC", "colleQR" = "ColleQR"})
 */
class Colle
{
    /**
     * @var ArrayCollection
     * @ORM\OneToMany(targetEntity = "Polycopie", mappedBy = "colle", cascade = {"persist", "remove"})
     */
     protected $polycopies;

public function __construct()
{
    $this->polycopies = new ArrayCollection();
}

    /**
 * @return ArrayCollection
 */
public function getPolycopies()
{
    return $this->polycopies;
}


/**
 * Add Polycopie
 *
 * @param Polycopie $polycopie
 * @return Colle
 */
public function addPolycopie(Polycopie $polycopie)
{
    $this->polycopies[] = $polycopie;

    return $this;
}

/**
 * Remove Polycopie
 *
 * @param Polycopie $polycopie
 */
public function removePolycopie(Polycopie $polycopie)
{
    $this->polycopies->removeElement($polycopie);
}
}

Компания Polycopie:

class Polycopie
{
    /**
     * @ORM\ManyToOne(targetEntity = "Colle", inversedBy = "polycopies", cascade = {"persist"})
     * @ORM\JoinColumn(name = "id_colle", referencedColumnName = "id")
     */
     protected $colle;

     public function getColle(): ?Colle
{
    return $this->colle;
}

public function setColle(Colle $colle): self
{
    $this->colle = $colle;

    return $this;
}
}

Форма :

class MiseEnLigneFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{

$builder->add('polycopies', CollectionType::class,
            ['label' => false,
                'label_attr' => ['class' => 'active'],
                'entry_type' => PolycopieFormType::class,
                'entry_options' => [
                    'data_class' => Polycopie::class],
                'allow_add' => true,
                'allow_delete' => true,
                'by_reference' => false
            ]);
}

 public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults(['data_class' => Colle::class]);
}
}

PolycopieForm:

class PolycopieFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->add('nom', TextType::class, ['label' =>'Nom',
                                                 'label_attr' => ['class'=>'active']]);
}

public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults(['data_class' => Polycopie::class]);
}
}

Я все время получаю эту ошибку:

Could not determine access type for property "polycopies" in class "App\Entity\ColleQC"

Я попытался очистить кеш, но ничего не вышло.

Я провел небольшое исследование, и это должно быть связано с тем, что чего-то не хватает, например, геттера или сеттера, но я не могу найти то, что отсутствует в моем коде.

ColleQC? Что это?
u_mulder 10.09.2018 16:41

В вашем классе Colle нет конструктора.

Chris 10.09.2018 16:43

ColleQC является дочерней сущностью объекта Colle, но я не знаю, почему он смотрит на ColleQC, тогда как я использовал объект Colle в своем коде. У меня в коде есть конструктор. Я только что добавил это выше.

Kristen Joseph-Delaffon 10.09.2018 16:45

Одна из проблем заключается в том, что методы добавления и удаления кажутся не относящимися к самому классу Colle.

futureal 10.09.2018 16:51

Это ошибка копирования. В моем коде они находятся в классе Colle

Kristen Joseph-Delaffon 10.09.2018 16:53

Вставьте, пожалуйста, обе формы целиком.

emix 10.09.2018 16:59

Я добавил PolycopieForm

Kristen Joseph-Delaffon 10.09.2018 17:01

Почему в вашем MiseEnLigneFormType определен параметр entry_options? Он вам не понадобится.

ehymel 10.09.2018 21:52

Я удалил его, и это не имеет значения.

Kristen Joseph-Delaffon 12.09.2018 12:41

Решением было добавить сеттер для сущности Polycopie в Colle.

Kristen Joseph-Delaffon 12.09.2018 13:56
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
10
216
0

Другие вопросы по теме