问题描述
|
我希望某人输入他们的登录详细信息,然后执行操作以检查他们是否是现有用户。如果不是,那么我希望他们必须从下拉菜单中选择他们的部门,否则请照常进行。
我不知道登录的下落,但要检查他们是否是现有用户。有人可以帮忙吗?
解决方法
在Symfony sfGuard中,如果某人不是现有用户,则他们根本无法登录。这意味着您应该将它们分为登录和注册:
如果是用户,请登录。
如果不是,请注册并选择部门。
但是,如果您希望自定义行为在用户首次登录时发生,则可以自己为此创建一个标志,可能是通过为sfGuardUser创建一个关联的配置文件表。 sfGuardUser模型没有可用于此类内容的自定义字段,但是...它确实具有\“ Timestampable \”行为,因此您可以这样做(伪代码):
if (created_at == updated_at) {
// go to select department and update updated_at
} else {
// login as normal
}
我相信在创建新的sfGuardUser时,这两个字段将设置为相等。
希望能有所帮助。
, 恕我直言,将其部门信息存储在一个表中可能会很有用(扩展extend1ѭ,或为此类“扩展的用户数据”创建另一个,然后检查是否在此处设置了该信息)。
如果不是,他们还没有回答,因此是第一次。考虑给用户一个“不想选择”选项,不同于“尚未选择”选项-根据您的业务逻辑,您可能会想要还是不想。