我想使用模型验证 . 我可以清楚地解释一下在我看来,有一个名为“register.ctp”的文件 . 另外我有两个表一个是用户,另一个是配置文件,根据cakephp概念我也有两个模型,即用户模型(User.php)和配置文件模型(Profile.php) . 我的register.ctp包含以下字段
姓名,电子邮件,地址和电话都是强制性的 - 当我提交时,姓名和电子邮件将存储在用户表和地址中,电话将存储在 Profiles 表中
当我使用模型验证时,我已尝试使用以下代码,该代码仅适用于名称和电子邮件,但不适用于其他字段 .
这是我在用户模型中进行模型验证的代码(User.php)
public $validate = array(
'email' => array(
'blank' => array(
'rule' => 'notEmpty',
'message' => 'Please enter Email.'
)
),
'name' => array(
'rule' => 'notEmpty',
'message' => 'Please enter Name'
),
'address' => array(
'rule' => 'notEmpty',
'message' => 'Please enter Address'
),
'phone' => array(
'rule' => 'notEmpty',
'message' => 'Please enter Phone'
),
);
谢谢
2 回答
您需要为每个模型设置验证 .
所以在
User.php
:并在
Profile.php
:您需要在Controller中验证两个模型:
请参阅这两种模型方法 .
Model::validateAssociated()验证单个记录及其所有直接关联的记录 .
Model::validateMany()验证单个模型的多个单独记录
另见Model::saveAll() . 它可用于验证整组记录和相关记录 . 这只会验证但不保存reocrds:
我建议您阅读有关saveAll()的整个文档,以了解它的工作原理以及仅在验证数据时将返回的内容 .
无需像noslone建议的那样逐个手动验证每个模型 . 上面的单行也可以 .