【发布时间】:2013-09-28 07:53:15
【问题描述】:
我见过很多人尝试使用 FOSUserBundle。
我已经为此苦苦挣扎了 6 个小时。只是为了能够制作自定义用户注册表单。 基本文档长达 6 页:basic。 从我的角度来看,以下是使用 FOSUserBundle 的所有缺点:
- 您必须复制粘贴他们的视图才能实现继承
- 他们在数据库中有自己的自己的表:
fos_user。因此,您必须将所有代码基于您的user实体,它是BaseUser的子实体。如果您的数据库遵循约定(就像 wordpress 一样,所有表都以wp_开头),这会破坏您的约定。 - 您必须使用诸如“如果 fos_user_content 块为空,我想没有什么可显示的内容,否则我必须重新组织我的整个视图以显示 fos_user_content 块(注册、修改用户配置文件和等等)”
- 现在我发现如果您需要两种不同的注册表单(例如,一种用于客户,一种用于合作伙伴),除非您破解,否则这是不可能的。见here。
所以我只是想知道:使用 FOSUserBundle 有什么意义? 如果我已经按照 Symfony 帮助(表单、表单验证和会话)中解释的非常基本的事情完成了注册过程,并且我只是复制粘贴我的代码,从我的角度来看,这比安装要快得多, FOSUserBundle 的配置、继承、修改等。
知道我做了什么,FOSUserBundle有什么优势?什么可以让我做出改变并花更多时间让它与我的项目一起工作,而不是从另一个项目中重复使用我的(表单、表单验证和会话)?
【问题讨论】:
-
使用 FOSUserBundle 应该更快地实现您需要的所有功能。如果您可以通过其他方式更快更好地做到这一点,请不要使用它。
-
我一直在用头撞墙以使其与 PUGXMultiUserBundle 一起工作,因为这个应该可以帮助我拥有多个用户。我已经设法设置了所有内容,现在,天哪,在设法显示两种不同的注册表单后,当我使用一个或另一个注册表单发布时,我遇到了一个完全无法理解的错误:据我所知,学说试图做出一个不使用表“
t0”加入: -
(以下)
An exception occurred while executing 'SELECT t1.username AS username2, t1.username_canonical AS username_canonical3, t1.email AS email4, t1.email_canonical AS email_canonical5, t1.enabled AS enabled6, t1.salt AS salt7, t1.password AS password8,[...snap...] FROM person_teacher t1 WHERE t0.username_canonical = ?' with params ["sqdfsdf.dfqs@gmil.com"]: SQLSTATE[42S22]: Column not found: 1054 Unknown column 't0.username_canonical' in 'where clause'. -
...当然,绝对ZERO在网络上提供此类错误的线索或帮助。我开始厌倦了symfony。我几乎把所有时间都花在解决配置问题上,而不是技术问题或其他任何问题上。
-
FOSUserBundle 很难用,它不是 Ruby On Rails 中的
Devise
标签: symfony fosuserbundle