防止验证在多个表格上显示cakephp

时间:2013-05-24 06:26:09

标签: php cakephp validation cakephp-2.0 models

我有一个奇怪的问题,我有一个页面,右上角有一个登录面板,

在页面的中间位置有一个注册表单。

登录表单和注册表单都包含用户模型中的用户名和密码字段。

我的问题是当注册表单提交验证规则被激活但是显示

无论是注册表还是登录表,我都不想要。

我希望它以这种方式工作,当我提交注册表单时只验证注册表格,反之亦然。

我无法为此找到解决方法......请指导我正确的方向。

2 个答案:

答案 0 :(得分:1)

要仅以发布而不是其他形式显示的表单中显示验证错误,您可以在视图中添加检查,其中错误显示在提交按钮名称中,因为在两个表单中,提交按钮将具有不同的名称,例如submit1和submit2。

// In Form1
if(isset($_POST['data']['form1']['submit1']))
{
 //display validations for form1
}

// In Form2
if(isset($_POST['data']['form2']['submit2']))
{
 //display validations for form2
}

答案 1 :(得分:0)

我在同一页面上遇到了类似的登录和注册表单问题。

我解决验证错误问题的方法是重新标记登录表单元素,以便将它们标记为“登录”而不是“用户”。例如,我$this->Form->input('User.email')取代$this->Form->input('Login.email')而不是$this->request->data['User'] = $this->request->data['Login']; 。然后,我在每个表单中包含一个隐藏的“步骤”字段,并检查表单提交时存在的字段。

如果正在提交登录表单,请在继续之前将登录表单元素切换到正确的模型: -

{{1}}

这样逻辑就在控制器而不是视图中。