我有一个使用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') ) ); } ?>注册视图中的
验证有效,但秘密区域的用户无法将数据输入数据库。
答案 0 :(得分:1)
我的猜测是:发生这种情况是因为您已将required
设置为true
。
这会强制执行以下规则:当提交User模型的数据时,需要设置email
密钥。因此,这适用于您的注册表单,该表单显然具有电子邮件密钥。另一方面,您在秘密区域中使用的表单可能没有电子邮件字段。
只需从验证规则中删除“必需”条件:
'email' => array(
'email' => array(
'rule' => array('email'),
'message' => 'Please enter a valid email',
),
),
请告诉我这是否适合您。