Почему в Doctrine2 нет события preLoad?

Мне просто любопытно, почему такого события не существует. Есть ли для этого очевидная причина, которую я не вижу, или существует какой-то обходной путь?


person Reza S    schedule 23.08.2012    source источник
comment
У меня нет ответа, но мне тоже любопытно :) Что бы вы сделали перед загрузкой?   -  person AlterPHP    schedule 24.08.2012
comment
Я пытался сделать что-то необычное, изменив SQL прямо перед оператором select, но понял, что это можно сделать с помощью фильтров SQL :)   -  person Reza S    schedule 25.08.2012


Ответы (1)


Ну это очевидно с моей точки зрения.

postLoad — событие postLoad происходит для объекта после того, как объект был загружен в текущий EntityManager из базы данных или после того, как к нему была применена операция обновления.

Источник

Поскольку во время так называемого состояния preLoad у вас нет никаких сущностей - почему вы хотите ничего не модифицировать чем-то?

person Vitalii Zurian    schedule 24.08.2012
comment
Вот причина, почему это было бы полезно. По сути, добавление соединения к объекту, чтобы избежать ленивой загрузки, если оно когда-либо вызывалось без надлежащих соединений. - person Chadwick Meyer; 02.11.2015
comment
Вы знаете, postLoad вызывается после того, как фактические данные были собраны. Но в случае, если я использую пользовательский тип (например, FileType) и хочу установить путь и другие кадры в событии postLoad, а для сравнения в наборах изменений я хочу использовать не данные из моего пользовательского типа, а данные, которые были установлены postLoad мероприятие. И это невозможно - person wtorsi; 05.07.2018
comment
Предоставление информации о локали объекта перед загрузкой данных было бы одним из сценариев, в котором предварительная загрузка была бы интересной функцией. - person DerpyNerd; 18.08.2019