2014-04-14 3 views
1

이 주제에 대한 수많은 답변을 읽은 후에도 (H) MVC에서 사용자 입력 유효성 검사를 어디서 어떻게해야합니까? 질문에 대한 확실한 답을 찾지 못했습니다. 대중적인 견해에 따르면 나는 모델에 유효성 확인 코드를 쓰는 아이디어에 부분적으로 팔렸지만, 다음 두 가지 질문은 나에게 답을주지 않았다.HMVC의 사용자 입력 유효성 검사

1) MODEL은 어떤 UI 요소 (예 : id user_name을 가진 textbox)가 오류를 담당하므로 VIEW가 특정 UI 요소에 포커스를 두거나 오류 메시지를 표시 할 수 있는지 어떻게 알 수 있습니까? 그거야?

2) 나는 당신이 모델에서 유효성 검사 루틴을 넣어 한 번, 당신이 그 모델 메소드를 직접 호출을 배치 JS를 활용할 수 있다는 곳 SO에서 읽습니다. 이 경우 MVC 패턴의 기본 규칙을 위반하는 것과 같지 않습니까?

MODEL이 유효성 확인 코드를 수용하기에 적합한 곳이 아니라면 어디에서 제안 하시겠습니까?

의견을 말하십시오.

덕분에, 모델이되는 UI 요소를 알고 있나요 어떻게

+0

당신은 도메인 객체에 그것을 할 것입니다. Kohana에서, 당신은 그것을 "모델"이라고 부르는 것으로서합니다. –

답변

0

1) (예 : - 그것은 특정에 초점을 넣어보기를 할 수 있도록 아이디 _ 이름을 가진 텍스트 상자), 오류에 대한 책임 UI 요소를 선택하거나 옆에 오류 메시지를 표시 하시겠습니까?

모델은 어떤 UI 요소가 책임이 있는지 (모를 필요가 없음) 모릅니다. Kohana ORM validation functions은 일련의 오류를 다시 컨트롤러로 반환하도록 설계되어 컨트롤러가 뷰에 삽입합니다. Kohana 설명서는 정확히 당신이하려고하는 것의 an example입니다.

2) 나는 당신이 모델에서 유효성 검사 루틴을 넣어 한 번, 당신이 그 모델 메소드를 직접 호출을 배치 JS를 활용할 수 있도록 어딘가에 읽었다. 이 경우 MVC 패턴의 기본 규칙을 위반하는 것과 같지 않습니까?

Kohana에는 JavaScript 기반 모델 유효성 검사 기능이 내장되어 있지 않습니다. 이 사용할 수있는 많은 자바 스크립트 추가에 대한 검증 프레임 워크, 그리고 일반적인 것들의 대부분은 당신에 의해 사용되는 클래스 이름의 목록, 특별한 data-* 특성 또는 서버 측 코드에서 자바 스크립트 배열을 생성함으로써 작동 클라이언트 측 유효성 검사 코드 이 검증 데이터를 생성하는 적절한 방법은 수행 검증들의 어레이의 모델을 요구하고 자바 스크립트를 구축하는 제어기 내부에 그 배열을 사용하여, 제어기이다.

앞에서 설명한 기술과 유일한 차이점은 이전 모델에서는 유효성 검사 실패 이름을 묻는 반면 후자는 모델에 유효성 검사 이름을 묻는 것입니다.

이렇게하려면 새 클래스 Validation extends Kohana_Validation을 만들고이 개체에 대한 유효성 검사 규칙을 반환하는 메서드 get_rules을 메서드에 추가해야합니다. 그런 다음 컨트롤러에서 my_model->validation()->get_rules()을 호출하고 규칙 배열을 처리하여 JavaScript를 만들 수 있습니다. MVC에서