2010-06-12 4 views
1

Symfony 1.4에서 확인란을 렌더링하는 sfWidgetFormChoice가 있습니다. 내가 가진 문제는 각각의 선택을 테이블의 한 행으로 바꾸고 싶다는 것입니다. 따라서 내 HTML은 이상적으로 다음과 같을 것입니다.각 선택 항목을 Symfony 선택 위젯의 테이블 행으로 렌더링

<tr><td>Choice 1</td></tr> 
<tr><td>Choice 1</td></tr> 
<tr><td>Choice 1</td></tr> 
      . 
      . 
      . 

그래서 목록 대신 테이블로 렌더링됩니다.

감사합니다. 내가 renderer_class 옵션을 설정하여 체크 박스로 렌더링 할 수 있도록 다양한 선택을 위해 사용

public static function MyFormatter($widget, $inputs) { 
     $result = '<table>'; 
     foreach ($inputs as $input) { 
      $result .= '<tr><td>' . $input ['label'] . ' ' . $input ['input'] . '</td></tr>'; 
     } 
     $result .= '</table>'; 
     return $result; 
} 

:

$this->widgetSchema ['my_widget'] = new sfWidgetFormChoice(array('multiple' => true, 'expanded' => true, 'choices' => my_choices, 'renderer_class' => 'sfWidgetFormSelectCheckbox', 'renderer_options' => array('formatter' => array('MyForm', 'MyFormatter')))); 

$this->validatorSchema ['my_widget'] = new sfValidatorChoice(array('multiple' => true, 'choices' => array_keys(my_choices), 'required' => false)); 

그런 다음 다음과 같은 포맷 방법은 MyFormatter라는 추가 : 양식에

답변

2

MyForm 다음 위젯을 만들라고 위젯 정의에서 sfWidgetFormSelectCheckbox으로 바꾸려면 sfWidgetFormSelectRadio을 사용하여 라디오 버튼으로 렌더링하고 01을 변경하여 다른 형식의 다른 포맷터를 호출 할 수 있습니다.

관련 문제