如何防止多个用户同时使用相同的用户名输入?示例:当我使用用户名时,其他人尝试同时输入我的用户名,则应显示“您的用户名已在使用中”的错误。 我尝试在用户已经使用它的DB中保存用户名。但离开帐户而不退出现在是个问题。
答案 0 :(得分:0)
你会使用sfValidatorDoctrineUnique。
http://symfony.com/legacy/doc/forms/1_4/en/B-Validators#chapter_b_sub_sfvalidatordoctrineunique
您还应该使您的数据库列也是唯一的。
答案 1 :(得分:0)
我会在表单的“configure”函数中执行类似的操作:
$this->validatorSchema->setPostValidator(new sfValidatorDoctrineUnique(
array('model' => 'sfGuardUser', 'column' => array('username')),
array('invalid' => 'Username already in use') )
);
我在这里假设你正在使用sfGuard插件,否则你将不得不修改模型。正如@Kevin所说,该列必须是唯一的