2016-06-08 4 views
0

Я новичок в Symfony, поэтому я до сих пор не знаю, что возможно или нет с этим фреймворком. Я создал 2 объекта с FOSUser, один для обществ и другой для школ. Я могу создать всех пользователей, которых я хочу, с обществом, но я не могу изменить объекты для создания школьных пользователей.Можно ли указать, какой объект мы хотим использовать для создания пользователя?

Я не знаю, является ли мой вопрос глупым, но я не вижу способа отличить этих пользователей, кроме тех случаев, когда я предоставляю им роли, а также я ничего не могу найти об этом в Google.

Спасибо заранее

+0

Вы можете подключить свой собственный провайдер: http://symfony.com/doc/current/cookbook/security/custom_provider.html, который даст вам возможность создавать пользователей с разными классами. Другим подходом было бы использовать однонаправленное наследование таблицы: http://doctrine-orm.readthedocs.io/projects/doctrine-orm/en/latest/reference/inheritance-mapping.html#single-table-inheritance, которое автоматически использует надлежащее класс. Хотя интеграция sti с FOSUserBundle может быть сложной задачей. – Cerad

ответ

0

Короткий ответ, что IIF используется FOSUserBundle, вы не можете иметь несколько классов пользователей. Конфигурация связки позволяет определить один пользовательский класс, который расширяет базовую модель пользователя, предоставляемую пакетом.

Основываясь на том, что я сделал во многих проектах, я предлагаю вам иметь один класс пользователя с фактическими данными пользователя (то есть имя, имя пользователя, адрес электронной почты, пароль), а затем, в вашем классе «Общество» и «Школа», которое относится к объекту User.

 Смежные вопросы

  • Нет связанных вопросов^_^