2010-11-30 3 views
0

인증 구성 요소를 사용하는 앱이 있습니다. Logedin 회원은 사용자 모델에 유효성 검사 규칙이없는 한 데이터를 변경할 수 있습니다. model $ logenin에 배열 $ 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

+0

케이크 프레임 워크 v 1.2를 사용합니다. –

답변

1

내 생각 엔 : 이것은 requiredtrue으로 설정했기 때문에 발생합니다.

이렇게하면 사용자 모델의 데이터를 제출할 때 email 키를 설정해야한다는 규칙이 적용됩니다. 따라서 전자 메일 키가있는 가입 양식에서이 방법을 사용할 수 있습니다. 반면에 비밀 영역에서 사용하는 양식에는 이메일 필드가 없을 수 있습니다.

은 그냥 유효성 검사 규칙에서 "필요한"조건을 제거 :

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

이 당신을 위해 작동하는지 알려주세요.

+0

당신 말이 맞습니다. 필수 매개 변수를 제거해야합니다. RabidFire에게 감사드립니다. –

+0

> 반면에 비밀 영역에서 사용하는 양식에는 이메일 입력란이 없을 수 있습니다. 그것은 역시 정확합니다. –

+0

나는 이것을 http://pastebin.com/WgeLhqXB와 같이 해결했습니다. 이제 가입 할 때 단일 컨트롤러 확인이 있습니다. –

관련 문제