2010-11-30 157 views
0

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

我使用一个名为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') 
) 
); 
} 
?> 

验证在注册视图的作品,但用户的秘密区域不能输入数据到数据库。

+0

你正在使用哪个版本? 1.2还是1.3?它抛出任何错误? – RSK 2010-12-01 15:56:01

+0

我使用蛋糕框架1.2版 – 2010-12-01 16:25:39

回答

1

我的猜测是:这是因为您已将required设置为true

这强制执行规则,即在提交用户模型的数据时,需要设置email密钥。因此,这在您的注册表单中起作用,显然它具有电子邮件密钥。另一方面,您在秘密区域使用的表单可能没有电子邮件字段。

刚刚从你的验证规则删除“所需的”条件:

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

让我知道这对你的作品。