2012-04-20 2 views
0

컨트롤러에 데이터 집합이 있고 클라이언트에서 일부 값을 보낼 수 없습니다 (내 논리에서는 오류가 아닙니다). 데이터베이스의 해당 필드를 수정하십시오. 하지만 값이 빈 문자열이면 오류를 던지고 싶습니다.젠드 프레임 워크 유효성 검사 : 빈 문자열의 유효성을 검사하고 null 값의 유효성을 검사하지 않습니다.

표준 검사기로 어떻게 할 수 있습니까?

예 :

나는 테이블 2 개 필드 사용자가 : 사용자 이름과 암호를. 그의 프로필에있는 사용자는 그 중 하나 또는 둘 다를 변경할 수 있습니다. 프로필은 옵션 writeAllFields: false으로 구성된 프록시를 사용하여 ExtJS 4로 작성되므로 클라이언트는 수정 된 필드 만 서버로 보냅니다. 예를 들어, 사용자 이름이 다른

  • $this->_request->getPost('username')
  • $this->_getParam('username')

... 또는 무언가 (그것의 널 (null))를 통해 찾을 수 없습니다 경우 서버 측에서

, 나는 싶지 않아 데이터베이스에서 유효성을 검사하고 수정하십시오. 사용자가 사용자 이름 필드에 빈 문자열을 입력 한 경우

하지만, 나는 그것을 확인하고 "사용자 이름은 비워 둘 수 없습니다"와 같은 텍스트를 사용자에게 오류를 보여주고 싶어요.

어떻게 수행 할 수 있습니까?

+0

우리가 당신을 도울 수 있도록 구체적인 예를 들어주세요. – Liyali

+1

아마도'NotEmpty' validator 또는'setRequired'와 같은 소리가 여러분이 찾고있는 것입니다. – drew010

+0

몇 가지 예를 쓸 수 있습니까? –

답변

0

개인적으로 입력을 필터링 한 다음 유효성을 검사합니다. 하지만 당신의 목표를 달성하기 위해, 이것은 아마도 그 직선 양식을 만들 수 젠드 양식을 사용하는 경우 적용 무엇 drew010 가지 설명 docs.

$valid = new Zend_Validate_NotEmpty(); 
$value = ''; 
$result = $valid->isValid($value); 
// returns false 

에서 트릭을 할 것입니다. 이 경우 요소 자체에서 setRequired() 유효성 검사기를 true로 설정하면 입력이 제공되지 않으면 사용자에게 오류가 표시됩니다. Zend Form을 사용하지 않는다면 위의 내용이 올바른 방향으로 향해야합니다.