5

Zend_Form에 대한 사용자 정의보기를 만들 수있는 확실한 방법이 있습니까? 데코레이터는 매우 신비스럽고 화려한 방법으로 사용할 때가끔 너무 복잡해서 HTML을 직접 작성하는 것을 선호합니다. 그것을 할 수있는 방법이 있습니까? 그리고 양식이 컨트롤러와 완벽하게 협조하도록하십시오 (예 : $form->isValid()로 전화하고 모든 것이 올바르게 검증되기를 기대하십시오)? 그렇다면 검증 오류 표시에주의를 돌리는 것과 같은주의 사항이 있습니까?Zend에서 양식보기 만들기

이상적인 솔루션은 폼을 작성하고 요소 배열 (이름, ID, 입력 유형 및 HTML 렌더링에 필요한 모든 데이터 포함)을 전달하는 것입니다. Zend Framework는 이것을 허용합니까?

<?php 
$userid = $this->form->getElement('userid'); 
$pass = $this->form->getElement('password'); 
$remember = $this->form->getElement('remember'); 
$submit = $this->form->getElement('submit'); 
?> 
<form enctype="<?php echo $this->form->getEnctype(); ?>" method="<?php echo $this->form->getMethod(); ?>" action="<?php echo $this->form->getAction(); ?>" id="<?php echo $this->form->getId(); ?>"> 
name: <input type="text" id="<?php echo $userid->getId(); ?>" name="<?php echo $userid->getName(); ?>" /><br /> 
pass: <input type="password" id="<?php echo $pass->getId(); ?>" name="<?php echo $pass->getName(); ?>" /><br /> 
remember: <input type="checkbox" id="<?php echo $remember->getId(); ?>" name="<?php echo $remember->getName(); ?>" /><br /> 
submit: <input type="submit" id="<?php echo $submit->getId(); ?>" name="<?php echo $submit->getName(); ?>" value="<?php echo $submit->getValue(); ?>" /> 
</form> 

양식 확인 작업 보인다 :

[편집]

대신 단지 echo 양식 객체를 보내고의

, 내가보기에이 코드 (간단한 로그인 폼)를 추가 시도 validate (내가 보낸 페이지로 리다이렉트되지는 않지만, 이것은 다른 문제이다. 폼에서가 아니라 GET을 통해이를 전달할 때 나는 믿는다.) 그게 받아 들일 수 있습니까, 아니면 그것을 모른 채 무섭게 잘못하고있는 것입니까?

+0

: 당신이 장식을 사용하려는 경우

, 당신은이 기술을 마스터 매우 유용이 프리젠 테이션을 찾을 수의 나 ; – Marcin

+0

데이터로 데이터를 채우는 것이 아니라 끔찍한 끔찍한 장식품을 사용하지 않고 자신의 HTML을 작성하는 것입니다. – mingos

+0

그것은 지저분한 방법이며, 나는 대답으로 게시하지 않는 이유입니다. 그러나 Marcin이 제안했듯이, 여러분은 여전히 ​​똑같은 ID로보기에 자신의 양식을 작성하고 Zend_Form으로 양식을 작성할 수 있습니다. 그런 다음 필터, 유효성 검사기 등을 사용하도록 채 웁니다. Zend_Form을 사용하지 않고 독립 실행 형 필터 및 유효성 검사기를 사용할 수도 있습니다. 기본적으로 생성 된 양식없이 Zend_Form을 사용하는 것과 같습니다. 하지만 최고의 조언은 여전히 ​​있습니다 : 장식가들에게 다이빙;) –

답변

2

많은 디자인과 최종 레이아웃에 따라 다릅니다.

어디에서 유효성 검사 오류를 표시 하시겠습니까? 방법? 오류 데코레이터를 통해?
설명을 사용 하시겠습니까?
다른 데코레이터를 사용해야합니까?

가장 좋은 방법은 자신 만의 Zend_Form_Element_ThreadIcons 요소를 만드는 것입니다. Zend_Form 요소 중 하나를 서브 클래 싱하고 필요한 HTML을 반환하는 사용자 정의 _render() 메소드를 구현하는 것만 큼 쉽습니다. 심지어 자신의 View 인스턴스를 사용할 수도 있습니다.

그러면 아이콘 배열을 요소 옵션으로 전달하고 필요한 방식으로 처리 할 수 ​​있습니다. 당신은 ($ 데이터)를 채울> $ 형상 -를 사용하여 데이터와 zend_forms를 채울 수 있습니다

+0

나는이 해결책을 좋아한다. 나는 월요일에 일하러 돌아올거야. 그래서 나는 그것을 밖으로 체크 할 것이다 :). – mingos

관련 문제