2010-12-06 4 views
4

사용자 컨트롤러 및 login() 및 register() 작업을 참조하는 요소에 로그인 및 등록 양식이 있습니다. 예를 들어 모달 또는 페이지 컨트롤러 동작에서이 요소를 사용하면 사용자가 유효성 검사 오류 (모델 유효성 검사)가있는 경우 요소를 업데이트하는 대신 로그인/등록 작업 페이지로 리디렉션됩니다.CakePHP 요소 오류 처리 질문

Javascript/JQuery 유효성 검사를 사용할 수 있다는 것을 알고 있지만 오류가 발생하면 원래 작업의 페이지로 리디렉션하지 않고 CakePHP의 모델 유효성 검사에서 요소를 업데이트 할 수있는 방법이 있습니까?

답변

3

나는이 문제를 과거에 this PersistentValidation component으로 해결했습니다. 설정하는 방법은 UsersControllerPersistentValidation 구성 요소와 로그인/등록 요소를 포함하려는 다른 컨트롤러를 포함하는 것입니다.

귀하의 로그인/등록 양식은 해당 컨트롤러 작업에 제출됩니다. 유효성 검사가 실패하면 액션이 참조 페이지로 다시 리디렉션됩니다. 예 :

리디렉션되는 동작에 의해 호출 된보기에는 이전 요청의 유효성 검사 오류가 자동으로 입력됩니다.

유효성 검사 오류를 세션 변수에 저장하고 리디렉션 후에 이러한 오류를 검색하여 현재 요청의보기/요소에 사용할 수 있도록합니다. 이 작업은 직접 수행 할 수도 있지만 구성 요소를 사용하면 매우 어려워집니다.

+0

Brilliant !! 감사합니다 – Justin

+0

한 가지 질문이 있습니다 : 내가 사용자를 만들 때 이것을 사용하고 if ($ this-> User-> save ($ this-> data)) {[create code]} else { $ this-> redirect ($ this-> referer()); }, 요소가있는 페이지로 리디렉션하지 않지만 모델에 정의 된 오류 메시지는 표시하지 않습니다. 여기서 무슨 일이 일어나지 않는지 아십니까? 감사! 사용자 로그인은 잘 작동하지만 ... – Justin

+0

이 작업을 관리 할 수 ​​있습니까? 나는 지금 같은 문제를 겪고있다 ... 그것은 나를 다시 리디렉션하지만 오류는 보이지 않는다! – linkyndy