Мы переносим приложение на Symfony2 и в настоящее время застреваем с помощью доктрины ORM. У нас в базе есть множество плохих внешних ключей, и все сложнее делать сопоставления отношений без исключения в исключении «Сущность не найден». Это на дорожной карте, чтобы очистить базу данных, но сейчас это не то, что мы можем решить. Есть ли способ, чтобы я мог просто вернуть значение null, если он не смог найти правильную сущность?Игнорировать недостающие объекты в доктрине
Если у меня есть следующее отображение отношений:
User:
type: entity
table: user
id:
userID:
type: integer
generator:
strategy: NONE
fields:
contactName:
type: string
length: 255
nullable: false
contactPhone:
type: string
length: 255
nullable: false
companyName:
type: string
length: 255
nullable: false
username:
type: string
length: 255
nullable: false
password:
type: string
length: 255
nullable: false
email:
type: string
length: 255
nullable: false
manyToOne:
address:
targetEntity: Address
joinColumn:
name: addressID
referencedColumnName: addressID
nullable: true
default: null
-----------------------------------------------------
Address:
type: entity
table: address
id:
addressID:
type: integer
generator:
strategy: AUTO
fields:
street:
type: string
length: 255
nullable: false
street2:
type: string
length: 255
nullable: false
city:
type: string
length: 255
nullable: false
state:
type: string
length: 32
nullable: false
zip:
type: string
length: 10
nullable: false
country:
type: string
length: 40
nullable: false
Это кажется, что если есть плохое значение для AddressID в таблице пользователей я буду получить «Entity не был найден.» исключение при отправке через сериализатор.
благодарит за быстрый ответ! к сожалению, ваше предложение проверить значение null перед возвратом значения свойства не получилось. Я все еще получаю «Сущность не найдена». исключение. – Matt
Извините, это плохое предложение - причина, по которой Entity не найдена, сводится к Doctrine/Symfony, загружающей сущность из модели, сначала проверка на null сначала не остановит это, тем более что ее ключ не null, что вызывает Symfony/Doctrine, чтобы попытаться загрузить его! –