Семантически говоря, User
не обязательно должен быть личностью, поэтому я не вижу причин, по которым компания является пользователем вашего приложения.Я также не вижу причин для наличия двух отдельных таблиц в вашей базе данных.
Я бы создал отдельный класс Company, который расширяет пользовательский класс:
namespace Acme\Bundle\AcmeBundle\Entity;
use FOS\UserBundle\Entity\User;
class Company extends User
{
// Your company related fields and related getters/setters go here.
}
Затем переопределите пользовательский класс из вашегоконфигурация (например, в app/config/config.yml
):
fos_user:
user_class: Acme\Bundle\AcmeBundle\Entity\Company
Теперь UserBundle
знает, какой класс использовать в качестве User
.После настройки вашего пользовательского класса вы можете переопределить RegistrationFormType
для включения ваших пользовательских полей.
Если, однако, вы все еще хотите использовать два отдельных объекта в своем приложении, я предлагаю вам соединить их через Отношение один-к-одному и затем встраивание вашей Company
сущности в RegistrationFormType
, следуя документам о встраивании одного объекта в форму.
Ссылка: https://github.com/FriendsOfSymfony/FOSUserBundle/blob/1.2.0/Resources/doc/overriding_forms.md