我必须归档我的用户。我向User实体添加了一列,将它们设置为已存档。但是这种方法遇到了一些问题。我的归档用户和归档用户之间的用户名可以相同,电子邮件也是如此。 第一个问题:如何通过电子邮件和用户名阻止Unique Constraint违规错误? 第二个问题:如何才能使FOS仅检查其功能中的归档用户?
答案 0 :(得分:1)
archived.%id%.
。或者将它们移到另一张桌子上。扩展UserManager
类并重写选择用户的方法。
namespace MyFOSUserBundle;
class UserManager extends \FOS\UserBundle\Doctrine\UserManager
{
public function findUserBy(array $criteria)
{
$criteria['archived'] = 0;
return $this->getRepository()->findOneBy($criteria);
}
public function findUsers()
{
return $this->getRepository()->findBy(array('archived' => 0));
}
}
在UserManager
参数中将此类设置为FOSUserBundle
:
services:
my_fos_user.user_manager:
class: MyFOSUserBundle\UserManager
arguments:
- "@fos_user.util.password_updater"
- "@fos_user.util.canonical_fields_updater"
- "@fos_user.object_manager"
- "%fos_user.model.user.class%"
fos_user:
service:
user_manager: my_fos_user.user_manager