1

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

在页面中间的某个地方有一个注册表单。

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

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

我不想要的注册表单和登录表单。

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

我找不到解决方法...请引导我朝着正确的方向前进。

4

2 回答 2

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
}
于 2013-05-24T08:00:08.140 回答
0

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

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

如果正在提交登录表单,我将登录表单元素切换到正确的模型,然后再继续:-

$this->request->data['User'] = $this->request->data['Login'];

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

于 2013-05-29T14:15:35.140 回答