2017-05-18 2 views
0

저는 zf2와 TwbBundle로 작업하고 있습니다. 다양한 형태의 끝에 버튼 그룹으로 두 개의 버튼을 추가하고 싶습니다. 단추 그룹 옵션이 설정된 두 개의 개체로 Form에 직접 추가하면 잘 렌더링됩니다.zf2 필드 세트 내의 TwbBundle 버튼 그룹

$this->add(array(
    'name' => 'submit', 
    'type' => 'Button', 
    'options' => array(
     'label' => 'Speichern', 
     'button-group' => 'group-1', 
    ), 
    'attributes' => array(
     'type' => 'submit', 
     'class' => 'btn btn-primary btn-lg', 
    ), 
)); 

$this->add(array(
    'name' => 'cancel', 
    'type' => 'Button', 
    'options' => array(
     'label' => 'Abbrechen', 
     'button-group' => 'group-1', 
    ), 
    'attributes' => array(
     'type' => 'submit', 
     'class' => 'btn btn-default btn-lg', 
    ), 
)); 

이 결과 없습니다 :

<div class="form-group "> 
    <div class="btn-group"> 
     <button type="submit" name="submit" class="btn btn-primary btn-lg" value="">Speichern</button> 
     <button type="submit" name="cancel" class="btn btn-default btn-lg" value="">Abbrechen</button> 
    </div> 
</div> 

하지만 각 요소는 자신의 폼 그룹 요소에 싸여됩니다 재사용 FIELDSET로 추출하고 나면 더 이상 버튼을 그룹으로 렌더링합니다.

<fieldset> 
    <div class="form-group "> 
     <button type="submit" name="form-controls[submit]" class="btn btn-primary btn-lg" value="">Speichern</button> 
    </div> 
    <div class="form-group "> 
     <button type="submit" name="form-controls[cancel]" class="btn btn-default btn-lg" value="">Abbrechen</button> 
    </div> 
</fieldset> 

폼 클래스의 필드 집합에 CSS 클래스 또는 단추 그룹 옵션을 추가하려고했지만 원하는 효과가 없습니다.

누구나 동일한 문제가 있거나이를 실현하는 방법에 대한 아이디어가 있습니까?

건배 옌스

편집 : 요청 추가 코드에. 이와

<?php 
namespace Application\Form; 

use Zend\Form\Fieldset; 

class FormControls extends Fieldset 
{ 
    public function __construct() 
    { 
     parent::__construct('form-controls'); 

     $this->add(array(
      'name' => 'submit', 
      'type' => 'Button', 
      'options' => array(
       'label' => 'Speichern', 
       'button-group' => 'group-1', 
      ), 
      'attributes' => array(
       'type' => 'submit', 
       'class' => 'btn btn-primary btn-lg', 
      ), 
     )); 

     $this->add(array(
      'name' => 'cancel', 
      'type' => 'Button', 
      'options' => array(
       'label' => 'Abbrechen', 
       'button-group' => 'group-1', 
      ), 
      'attributes' => array(
       'type' => 'submit', 
       'class' => 'btn btn-default btn-lg', 
      ), 
     )); 
    } 
} 

을 그리고 포함 : 다음 필드 셋이 정의하는 방법 당신이 FIELDSET를 통해 요소를 추가되기 때문에

$this->add(array(
    'name' => 'form-controls', 
    'type' => 'Application\Form\FormControls', 
)); 
+0

재사용 가능한 필드 세트 사용 방법을 게시 할 수 있습니까? 클래스를 확장하거나 필드 세트를 다른 필드 세트에 추가합니까? – Dymen1

+0

는 추가 코드로 질문을 편집했습니다. Fieldset 클래스의 경우 Fieldset 클래스를 확장합니다. – Jens

답변

1

당신이 여분의 FIELDSET 태그를 얻고있는 이유는있다.

클래스 FormControls 덧붙인다 FIELDSET

$this->add(array(
    'name' => 'form-controls', 
    'type' => 'Application\Form\FormControls', 
)); 

솔루션이 결정 (/ FIELDSET)을 가질 것이다 클래스 확장 :

$this->add(array(
    'name' => 'form-controls', 
    'type' => 'Application\Form\FormControls', 
)); 

은 (폼/FIELDSET)을 연장하기를 다음을 포함하는 클래스 :

$this->add(array(
    'name' => 'submit', 
    'type' => 'Button', 
    'options' => array(
     'label' => 'Speichern', 
     'button-group' => 'group-1', 
    ), 
    'attributes' => array(
     'type' => 'submit', 
     'class' => 'btn btn-primary btn-lg', 
    ), 
)); 

$this->add(array(
    'name' => 'cancel', 
    'type' => 'Button', 
    'options' => array(
     'label' => 'Abbrechen', 
     'button-group' => 'group-1', 
    ), 
    'attributes' => array(
     'type' => 'submit', 
     'class' => 'btn btn-default btn-lg', 
    ), 
)); 

재사용 할 수있는 버튼이 있습니다.가 ButtonForm는 클래스 정의하고 추가하는

  • 젠드 클래스 될

    • 형태 : CoolForm ButtonForm가되는 형태를 확장 연장 : 결과는이 구조 등이 될 버튼
    • 쿨폼은 실제 필드 형식 인 userd이며, 필드 세트없이 버튼을 상속합니다.
  • +0

    감사합니다. 이제 두 개의 단추가 예상대로 표시됩니다.내 ** ButtonForm ** 클래스를 확장해도 항상 폼의 맨 위에 있습니다. 이 질문을 확인했지만 우선 순위 플래그가 나를 위해 작동하지 않는 것 같습니다 (http://stackoverflow.com/questions/25811923/zf2-form-customizing-order-of-elements). 내가 어떻게 맨 아래로 그들을 강제 수있는 모든 아이디어? – Jens

    +1

    다른 요소를 추가 한 후에는 단추를 추가하는 부모 함수를 호출해야합니다. – Dymen1

    +0

    정말 고마워요. 매력처럼 작동합니다. – Jens