Doctrine: неопределенный индекс при использовании одного и того же столбца для отношения «многие к одному» и составного первичного ключа

#php #symfony #doctrine-orm

#php #symfony #doctrine-orm

Вопрос:

У меня следующая структура таблицы:

Совпадение (футбольный матч)

  • ID
  • Дата

Оценка (одно совпадение имеет много оценок)

  • Совпадение
  • тип (перерыв, завершение, штрафы)
  • значение (3: 2)

Мой yml для оценки выглядит следующим образом:

 id:
    match:
      type: bigint
      associationKey: true
      column: Match
      columnDefinition: bigint(20) unsigned NOT NULL COMMENT '@fk/sd_Match/id'
    type:
      type: string
      length: 2
      options:
        fixed: true
  

И отношение:

 manyToOne:
    match:
      targetEntity: EntityMatch
      inversedBy: scores
      joinColumns:
        Match:
          referencedColumnName: id
  

Проблема в том, что когда я выполняю поиск, findOneBy … я получаю эту ошибку:

 Notice: Undefined index: Match
 /var/www/libe/vendor/doctrine/orm/lib/Doctrine/ORM/Utility/IdentifierFlattener.php:92
 /var/www/libe/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php:2501
 /var/www/libe/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/SimpleObjectHydrator.php:144
 /var/www/libe/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/SimpleObjectHydrator.php:69
 /var/www/libe/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/AbstractHydrator.php:147
 /var/www/libe/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php:720
 /var/www/libe/vendor/doctrine/orm/lib/Doctrine/ORM/EntityRepository.php:196
  

Кажется, проблема при использовании одного и того же столбца для обеих вещей.

Я попытался удалить совпадение из ключа, проблема в том, что объект score не загружает совпадение.

В этом случае, если я сделаю $score = $scoreRepo-> findOneBy(критерии); $score-> getMatch() // возвращает null, даже если в базе данных есть строки в обеих таблицах для построения отношения.

Есть идеи? Заранее спасибо!

Комментарии:

1. у вас нет столбца с именем Match . Проблемы с поиском в верхнем / нижнем регистре

2. на самом деле я делаю. Столбец в таблице имеет значение «Match», но свойство в сущности равно «match». Кстати, это старая структура