CakePHP验证和验证

时间:2010-11-30 21:49:12

标签: validation authentication cakephp

我有一个使用Auth组件的应用。只要我在用户模型中没有验证规则,Logedin成员就可以更改他们的数据。当我在模型logedin中添加数组$ validate时,用户无法将数据提交到数据库。

我使用一个名为users的mysql表。

换句话说,这有效但我在注册视图中没有验证

<?php
class User extends AppModel {
var $name = 'User';
?>

但是当我添加这样的验证时:

<?php
class User extends AppModel {
var $name = 'User';
var $validate = array(
  'email' => array(
    'email' => array('rule' => 'email','required'=>true,'message' => 'Enter proper mail')
  )
);
}
?>
注册视图中的

验证有效,但秘密区域的用户无法将数据输入数据库。

1 个答案:

答案 0 :(得分:1)

我的猜测是:发生这种情况是因为您已将required设置为true

这会强制执行以下规则:当提交User模型的数据时,需要设置email密钥。因此,这适用于您的注册表单,该表单显然具有电子邮件密钥。另一方面,您在秘密区域中使用的表单可能没有电子邮件字段。

只需从验证规则中删除“必需”条件:

'email' => array(
    'email' => array(
        'rule' => array('email'),
        'message' => 'Please enter a valid email',
    ),
),

请告诉我这是否适合您。