Мы используем Symfony2/DoctrineOdm/MongoDB, и когда мы это делаем:
if ($doc.referenceOne != null) { ... }
и $doc.referenceOne
содержит MongoDbRef, которые указывают на удаленный/потерянный документ, Doctrine Прокси-объект вызывает исключение MongoDBException.
Можно ли сообщить прокси-серверу, что он возвращает null вместо того, чтобы вызывать исключение?
Подробное объяснение:
Наш документ:
class User {
/* @MongoDB\ReferenceOne( ... ) */
private $photo;
}
Если $photo содержит MongoDbRef, но документ потерян/удален,
когда мы делаем if ($user. photo) { ... }
доктрина вызовет исключение MongoDBException:
The "Proxies\DocumentPhotoProxy" document with identifier "4fd8b3ef732bafab7b000000" could not be found
Мы хотим подавить исключение, так как наше приложение может обрабатывать нулевые значения в этой переменной.
(мы могли бы просто зарегистрировать эту ошибку, в то время как исключение распространится на 500 страниц и нарушит работу нашего сервиса)