We have moved our forum to GitHub Discussions. For questions about Phalcon v3/v4/v5 you can visit here and for Phalcon v6 here.

Table inheritance (Наследование таблиц, можно ли реализовать стандартными средствами Phalcon?)

How i can use table inheritance in phalcon, such as DiscriminatorMap in doctrine?



987

Может кто костыли изобретал, если нет стандартной реализации?

Расскажешь что это и как используется?



987

дока доктрайна https://docs.doctrine-project.org/en/latest/reference/inheritance-mapping.html

имеем 3 таблицы и такие же классы сущностей где базовый Users, а остальные наследники Users(id, type, email){1, 'applicant', 'email'}{2, 'employer', 'email'} Employers(id, e1, e2, ....){2, .......} Applicants(id, a1, a2, ...){1, ........}

Делаем: Users::findById(1) получаем сущность типа Applicant содержащую поля из двух таблиц Users::findById(2) получаем Employer

Делаем $a = new Applicant $a->email = $email; $a->a1 = $a1; $a->save();

Все поля записались на свои места, в таблице Users поле type имеет значение 'applicant'

Не очень понял в чем профит от такого решения, но в Phalcon такое не встречал, и в обсуждениях упоминания отсутствуют.



987

Для доски объявлений - это большой профит, 1) 1 контроллер на все типы материалов 2) если id пользователя хранить в общей таблице, можно выбирать все его объявления 3) уникальный id дла каждого материала

Звучит удобно. В Phalcon такого точно нет, но похожее можно реализовать через связи.