防止验证显示在多个表单cakephp


prevent validation from showing on multiple forms cakephp

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

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

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

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

在注册表单和登录表单中都有我不想要的

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

我找不到解决这个问题的方法…请指引我正确的方向。

为了只显示已发布的表单中的验证错误,而不显示其他表单中的验证错误,您可以在视图中添加check,其中错误与提交按钮名称一起显示,因为在两个表单中提交按钮将具有不同的名称,例如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
}

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

我绕过验证错误问题的方法是重新标记登录表单元素,使它们被标记为"login"而不是"User"。例如,我用$this->Form->input('Login.email')代替$this->Form->input('User.email')。然后,我在每个表单中包含一个隐藏的'step'字段,并检查提交表单时出现的字段。

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

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