0

我正在用 CakePHP 构建一个站点,我希望注册表单和登录表单位于同一页面上,因此都使用相同的控制器和模型。

因此,我创建了两个新模型,称为 UserLoginForm 和 UserRegisterForm,扩展了 User 模型,并对模型中的每个表单进行了验证。

问题是 CakePHP 希望我使用与数据库字段名称相匹配的表单输入名称作为数据应该去的地方,例如,登录表单中的电子邮件字段与注册表单中的电子邮件字段具有相同的名称,导致两种表单上都会出现验证错误。我是 Cake 的新手,所以我很难弄清楚如何解决这个问题。

非常感谢您!

4

1 回答 1

3

您应该尝试将模型视为匹配表中的一条记录,而将控制器视为操作的请求者。

在这种特殊情况下:

├── Controller/
│   ├── UsersController.php
└── Model/
    ├── User.php

控制器以它们处理的主要模型命名,并且与蛋糕中的任何其他东西一样,这可以更改,但为了可读性和后期维护,最好避免它。

两种形式的验证都应该在User模型中,因为它们都在users表中的一个寄存器上工作。最有可能在回调方法中。

由于您需要对每个表单进行自定义验证,因此您应该阅读本书中数据验证部分的“动态更改验证规则” 。

如果这变得令人困惑,请尝试退后一步,从阅读本文开始,并完成博客教程

一旦这些概念确定下来,您就会爱上 CakePHP。

于 2013-06-05T00:15:21.643 回答