Дамп сущности Symfony / Doctrine показывает два идентификатора, один из которых равен нулю

#php #symfony #doctrine

#php #symfony #doctrine

Вопрос:

У меня странная проблема, из-за которой объект, сброшенный с помощью функции ‘dump’ в Symfony, показывает, что у него два идентификатора. Один равен нулю, другой правильный. Выполнение $entity-> getId() возвращает null, но я, очевидно, хочу, чтобы был возвращен ненулевой идентификатор.

Пример вывода дампа:

 FacilityFinancialData {#9370 ▼
 -id: null
 -facility: Facility {#2425}
 -content: "Self-pay Options"
 -customContent: ""
 -extraData: array:36 [▶]
 -secondStatus: true
 #useCustom: true
 -childName: FacilityDataChildName {#9372 ▶}
 -sectionDataType: 6
 -status: true
 #createdAt: DateTime @1484126322 {#9367 ▶}
 #updatedAt: DateTime @1553071185 {#9368 ▶}
 -id: 1415556
}
  

Кто-нибудь видел это раньше или знает способ для меня получить доступ к ненулевому идентификатору?

Эти объекты являются связанными объектами внутри ArrayCollection.

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

1. покажите нам свой класс entity FacilityFinancialData

2. возможно, эта сущность не сохраняется, и именно поэтому у вас нулевой идентификатор

3. Но откуда в dump() два идентификатора? Один правильный (я проверил, и он сохраняется в БД), а другой — нулевой?

Ответ №1:

Хорошо, я исправил свою собственную проблему. Проблема заключалась в том, что у нас был private $ id для родительского объекта и private $ id для подклассового объекта. У нас должен был быть просто защищенный $ id для родительского элемента и никакого $ id для подклассов.

В любом случае, размещено здесь на случай, если кто-нибудь еще когда-нибудь увидит ту же проблему.

(Кстати, не моя кодовая база — я просто унаследовал ее вместе с этой странной проблемой)