Comments 19
спасибо большое.
Жаль что такие вещи разработчики откладывают до 2.0, когда они относительно просто реализуются. Еще бы кэширование нормальное с автоматической инвалидацией сделать…
Жаль что такие вещи разработчики откладывают до 2.0, когда они относительно просто реализуются. Еще бы кэширование нормальное с автоматической инвалидацией сделать…
0
По поводу простоты: знаете как долго я ржал над этим решением после изучения и дебагинга девяти классов Doctrine? А оказалось, что нужно поправить только один файл, да и то чуть-чуть :)
А во второй версии они анонсировали сортировку?
А во второй версии они анонсировали сортировку?
+1
переопределение класса доктрины через наследование точно не поможет справиться с проблемой?
0
Там внутри тех классов, которые реально переопределить, используются другие классы доктрины, которые подменить уже не получится. Relation — один из них.
Недавно нам тоже пришлось делать грязный хак доктрины для отвязывания наследования моделей от базового класса (т.е. необходимости перечислять наследников в базовом). Правда, обошлось без изменений библиотеки :)
Недавно нам тоже пришлось делать грязный хак доктрины для отвязывания наследования моделей от базового класса (т.е. необходимости перечислять наследников в базовом). Правда, обошлось без изменений библиотеки :)
0
Кажется вчера читал об этом в доке :)
0
Может я что-то сильно не замечаю, но по-моему в доктрине нет способа сделать наследование моделей, хранящихся в одной таблице, без указания всех подклассов в базовом классе (кроме Simple, который, по понятным причинам, не подходит).
0
Я наверное туплю :) Теперь я вас понял.
Мы подобную проблему решали путем исключения базового класса модели и наследованием модели напрямую от Doctrine_Record, естественно с переносом setTableDefinition.
Мы подобную проблему решали путем исключения базового класса модели и наследованием модели напрямую от Doctrine_Record, естественно с переносом setTableDefinition.
0
Вряд ли описанный метод решает проблему. Суть в том, чтобы при выборке Doctrine::getTable( «Base_Class» )->find( $id ) возвращался объект Derived_Class (extends Base_Class), но чтобы при этом Base_Class ничего не знал про Derived_Class (как это и должно быть в ООП).
0
можно увидеть код этого хака?
0
А есть какой нибудь способ отфильтровать коллекцию дальше? Предположим мне не нужны все записи и я хочу отобрать их по какому либо критерию? Насколько я знаю почти во всех ОРМ это есть, а в доктрине то, что по связи возвращается практически тупой массив, который ни пофильтруешь, ни отсортируешь, довольно разочаровывает.
0
Можно тем же способом передать дополнительные параметры.
0
Фильтровать обычно нужно динамически, да и сортировать не помешало бы тоже.
0
С этим сложнее. Просто реализовать, если отключить кэширование моделей, но это не айс.
Так что пока придется юзать метод прямой выборки коллекции через createQuery. А там может во второй версии что-то придумают.
Так что пока придется юзать метод прямой выборки коллекции через createQuery. А там может во второй версии что-то придумают.
0
Даже в пропеле, от которого почти все отказываются это есть. На практике получается отношения в доктрине на 90% бесполезны. Что сортировку, что фильтры надо делать через query.
0
Sign up to leave a comment.
Doctrine и сортировка для связи многие к одному