지금까지 나는 자신 만의 뷰 도우미를 작성할 수 있다는 것을 알았지 만, 프레임 워크를 처음 접했을 때 어떻게 해야할지 모르겠습니다. 나는 더 간단한 방법이 있기를 바란다!? (그것을 설정하는 것은 조금 어려울 수 있지만)유효성 검사가 실패한 경우 Zend 프레임 워크로 필드를 양식에 추가하는 간단한 방법이 있습니까?
답변
나에 대해 단지 있었다 이 문제에 대해 제 자신의 해결책을 가지고 물어보십시오. 지역 사회를 위해 말하자면, 여러분이 제안에서 팝업에 질문하는 것을 보았을 때 말입니다.
내 간단하고 예쁜 우아한 솔루션은, 나 자신이라고 말하면 간단한 사용자 정의 데코레이터를 사용합니다. 수신하는 내용에는 아무런 영향을주지 않지만 요소를 변경합니다.
class App_Form_Decorator_ErrorClass
extends Zend_Form_Decorator_Abstract
{
protected $_placement = null;
protected $_options = array(
'class' => 'error'
);
public function render($content)
{
$element = $this->getElement();
if($element->hasErrors())
{
$errorClass = $this->getOption('class');
$currentClass = $element->getAttrib('class');
$element->setAttrib('class', (!empty($currentClass) ? $currentClass . ' ' . $errorClass : $errorClass));
}
return $content;
}
}
사용법 :
당신이 전에 ViewHelper의 장식, 그리고 세트를 장식 를 추가하기 만하면됩니다.
public function init()
{
$elementDecorators = array(
'ErrorClass',
'ViewHelper',
// etc..
);
// or:
$elementDecorators = array(
array(
'ErrorClass',
array('class' => 'custom-class') // defaults to 'error'
),
'ViewHelper',
// etc..
);
// then just add the decorators to an element the way you usually do, for instance like so:
$someElement = new Zend_Form_Element_Text('someElement');
$someElement->setDecorators($elementDecorators);
// etc...
O, PS는 양식에 올바른 접두사 경로를 추가해야합니다 .: :
$this->addPrefixPath('App_Form', 'App/Form'); // or your own namespace
예는 이 얻을 것을 시도 자바 스크립트 라이브러리 미꾸라지를 사용이 그것을 보는 방법이다 http://techchorus.net/add-cool-zend-dojo-date-picker-form-element-without-writing-single-line-javascript
시작 :
고마워요.하지만 ZF로 서버 측 솔루션을 찾고있었습니다. –
가장 간단한 방법은 내가이 해당 양식의 isValid() 메소드를 확장되었다 할 발견 사용중인 클래스. 라이브러리의 My_Standard_Form 클래스로 설정하는 것이 좋습니다. 솔루션에 대한
public function isValid($data)
{
$valid = parent::isValid($data);
foreach ($this->getElements() as $element) {
if ($element->hasErrors()) {
$oldClass = $element->getAttrib('class');
if (!empty($oldClass)) {
$element->setAttrib('class', $oldClass . ' error');
} else {
$element->setAttrib('class', 'error');
}
}
}
return $valid;
}
크레딧은 웹 사이트 요인 블로그 (http://www.websitefactors.co.uk/zend-framework/2011/06/error-class-on-form-field-errors-using-zend-form/)로 이동합니다.
- 1. 유효성 검사가 실패한 후 입력 필드를 재설정하는 방법은 무엇입니까?
- 2. 간단한 XML 프레임 워크로 상속
- 3. 유효성 검사가 실패한 경우에도 ASP.NET Ajax.BeginForm 게시
- 4. 양식에 요소 그룹을 추가하는 방법이 있습니까?
- 5. xVal 유효성 검사가 실패한 경우의 이벤트?
- 6. 엔티티 프레임 워크로 엔티티를 업데이트하는 더 좋은 방법이 있습니까?
- 7. Django의 Sites Framework에 필드를 추가하는 방법이 있습니까?
- 8. ADO.NET 엔터티 프레임 워크에서 연결에 추가 필드를 추가하는 방법이 있습니까?
- 9. WinForms TabControl 유효성 검사 : 유효성 검사가 실패한 탭으로 전환
- 10. 한 datetime의 유효성 검사가 다른 datetime clientside보다 새로운 경우 및 실패한 경우 게시 경고
- 11. 젠드 프레임 워크로 태그 달기
- 12. IPB의 양식에 사용자 정의 필드를 추가하는 방법
- 13. 젠드 프레임 워크로 시작하는 문제
- 14. 스프링 폼 유효성 검사가 JSR 빈 유효성 검사와 다른 경우
- 15. 젠드 프레임 워크로 멀티 테넌시
- 16. 사용자 정의 유효성 검사가 실패한 경우에도 레코드가 저장됩니다. Rails 3
- 17. 유효성 검사가 실패한 경우에도 레일스 개체가 강제로 저장됩니다.
- 18. 동적으로 웹 양식에 텍스트 필드를 추가하는 jquery 플러그인이 있습니까?
- 19. cakephp 모델에서 유효성 검사가 실패했는지 확인하는 방법이 있습니까?
- 20. Javascript가 아닌 PHP의 양식에 대한 유효성 검사가 필요합니까?
- 21. Zend 프레임 워크로 절대 URL을 만드는 것이 가장 좋습니다.
- 22. CSS에 이미지가 포함 된 zend 프레임 워크로 이메일 보내기
- 23. 양식에 대한 유효성 검사 수행
- 24. 엔티티 프레임 워크로 역 정규화
- 25. CreateUserWizard에 더 많은 필드를 추가하는 경우
- 26. 3 개의 필드를 jquery 유효성 검사와 일치시키는 쉬운 방법이 있습니까
- 27. 유효성 검사가 활성화되지 않은 경우 textInput에 대한 유효성 검사 취소
- 28. 실패한 경우 수동 서버 유효성 검사 및 색상 textfield 만들기
- 29. 새 프레임 워크로 변경
- 30. zend framework : 동일한 이름의 필드를 선택하십시오. 제품 양식에
위대한 답변 fireeyedboy 주셔서 감사합니다. Abstract 클래스 대신 Decorator_ViewHelper를 확장하여 조금 다른 방식으로 구현했습니다. 이 방법은 해당하는 prefixPath가있는 모든 양식의 표준입니다. –