请考虑与单个登录实体相关的单个登录表单,并检查凭据。
我该如何处理一个可以处理四个用户类型帐户的登录表单?
两种用户类型是用户名,两种用户类型是电子邮件。
我想到的方法只是检查用户名的输入是用户名还是电子邮件,以将选择字段缩小到仅两种用户类型,然后运行登录查询以获取一种用户类型的用户详细信息。
然后,如果未找到任何内容,请对可以连接信息的第二个用户类型运行第二个查询。
如果没有,请返回错误,如果是,则将用户登录。
但是,当我刚接触Symfony时,您是否有任何技巧说明如何正确使用框架?
答案 0 :(得分:0)
您需要按照Symfony文档中的说明创建自定义用户提供程序:
http://symfony.com/doc/current/security/custom_provider.html
网站上提供了一个简单的示例。您可以通过fetchUser()
方法来实现自己的想法。
<?php
namespace App\Security\User;
// use...
class WebserviceUserProvider implements UserProviderInterface
{
// ...
private function fetchUser($username)
{
// Your logic
throw new UsernameNotFoundException(
sprintf('Username "%s" does not exist.', $username)
);
}
}