2012-03-30 4 views
0

symfony2 에서 필터 양식을 만들고 일부 필터를 미리 선택하려고합니다. datas는 URL로 통과 확장되지 않은 첫 번째 선택을 위해Symfony2 형식 선택 기본값 사용 선택

$formBuilder->add('first', 'choice', 
    array('choices' => $choiceFirst, 
    'expanded' => false, 
    'multiple' => true, 
    'data' => explode(' ', $this->getRequest()->get('first')) 
)); 
$formBuilder->add('second', 'choice', 
    array('choices' => $choiceSecond, 
    'expanded' => true, 
    'multiple' => true, 
    'data' => explode(' ', $this->getRequest()->get('second')))); 

사전 선택입니다

나는 두 가지 선택을 얻었다. 두 번째 확장되지 않습니다.

필드 선택에서 확인란을 미리 선택할 수있는 방법은 무엇입니까?

답변

1

객관식 필드의 데이터로 선택된 값의 배열을 제공해야합니다.

편집 : 확인 된 상태는 부울 값에 따라 달라집니다으로 관련이없는 대답, 내 실수

시도는 키 => 부울 배열을 제공합니다.

나는 당신이 단지 배열 체크 값을 넣어 생각, 그래서 해당하는 사람은)

+0

내가하는 일입니다. 배열을 모두 지정하면 데이터를 확장 한 것으로 설정하면 false가됩니다. false는 목록에서 데이터가 선택되기 때문입니다. 내 문제는 필드가 확장되었을 때 데이터가 선택되지 않았다는 것입니다. – user1014102

+0

죄송합니다. 확장 된 것과 다중으로 혼란스러워했습니다. 부적절한 답변을 삭제합니다 ... – AlterPHP

+0

get 값이 문자열이고 내 체크 박스 값이 int이기 때문에 아니 었습니다. 그래서 이전 데이터는 다음과 같습니다 : array (707 => '707) 그리고 지금 : array (707 => 707) – user1014102

1

내가이 문제에 대한 찾을 수있는 가장 좋은 해결책은 개체에 기본 값이 이전을 생성 설정하는 것입니다 형태.

처럼 :이 값을 이해 $myEntity->setMyfieldchoice(1);

이 방법 심포니의 (a 선택 필드에 내 근무) 기본값입니다.

희망이 도움이됩니다.

1

시도 :

$formBuilder->add('first', 'choice', 
    array('choices' => array('0' => 'first option', '1' => 'second option'), 
    'expanded' => false, 
    'multiple' => true, 
    'data' => explode(' ', $this->getRequest()->get('first')) 
)); 

그리고보기 :

{{ form_widget(form.first.0) }} 
{{ form_widget(form.first.1) }} 

나 작품.