我有一个奇怪的问题,我有一个页面,右上角有一个登录面板,
在页面中间的某个地方有一个注册表单。
登录表单和注册表单都有来自用户模型的字段,其中包含用户名和密码。
我的问题是当注册表单提交验证规则被激活但它显示
我不想要的注册表单和登录表单。
我希望它以这种方式工作,当我提交注册表单时仅验证注册表单,反之亦然..
我找不到解决方法...请引导我朝着正确的方向前进。
我有一个奇怪的问题,我有一个页面,右上角有一个登录面板,
在页面中间的某个地方有一个注册表单。
登录表单和注册表单都有来自用户模型的字段,其中包含用户名和密码。
我的问题是当注册表单提交验证规则被激活但它显示
我不想要的注册表单和登录表单。
我希望它以这种方式工作,当我提交注册表单时仅验证注册表单,反之亦然..
我找不到解决方法...请引导我朝着正确的方向前进。
要仅在发布的表单中显示验证错误,而不是在其他表单中显示验证错误,您可以在视图中添加检查,在其中显示错误的位置带有提交按钮名称,因为在两个表单中,提交按钮将具有不同的名称,例如 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
}
我在同一页面上的登录和注册表单上遇到了类似的问题。
我解决验证错误问题的方法是重新标记登录表单元素,以便将它们标记为“登录”而不是“用户”。例如,而不是$this->Form->input('User.email')
我有$this->Form->input('Login.email')
. 然后,我在每个表单中包含一个隐藏的“步骤”字段,并检查提交表单时存在的“步骤”字段。
如果正在提交登录表单,我将登录表单元素切换到正确的模型,然后再继续:-
$this->request->data['User'] = $this->request->data['Login'];
这样逻辑就在控制器而不是视图中。