新手问题。
我在 symfony 中创建了一个非常简单的 LoginForm 类。它检查用户是否在字段中插入了用户名和密码,并按预期工作。
// UserLoginForm :: configure()
$this->setWidgets(array(
'username' => new sfWidgetFormInputText(),
'password' => new sfWidgetFormInputPassword(),
));
$this->setValidators(array(
'username' => new sfValidatorString(array('required' => true),
'password' => new sfValidatorString(array('required' => true)
));
// Action :: executeLogin()
$this->loginForm = new UserLoginForm();
if ($request->isMethod('post')) {
$params = $request->getParameter('login');
$this->loginForm->bind($request->getParameter('login'));
if ($this->loginForm->isValid()) {
// ... more code
}
}
现在我正在尝试检查数据库中用户名字段的存在,如果它不存在,我想使表单无效。密码相同:如果用户名 + 密码对不存在,但消息不同。
试图找到我以两种可能的方式搜索的解决方案:
在行动中:
- 查询数据库,
- 检查用户名,
- 使表单用户名字段无效(我想要生成的 HTML 中的错误消息),
- 用户名+密码检查相同
在这种情况下,我如何使表单无效?如何处理模板中的错误信息?
在调用 isValid() 方法的表单类中:
- 向 setValidator()添加一些内容
- 或添加一个后验证器,该验证器调用一个查询模型的私有函数
在这种情况下,如何在 Form 类中使用模型?
哪种方法最好/最快?其他可能性?