2010-11-30 234 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', 
    ), 
), 

讓我知道這對你的作品。