2012-06-22 4 views
2

데이터베이스에 저장하는 설정이 있습니다. 이러한 설정에 대한 엔티티 클래스가 있습니다. 나는 그들에게 내 Controller을 요청하고 배열 배열을 내 FormType에 보냅니다. 그러나 buildForm()에서는 하나의 설정 만 렌더링 할 수 있습니다. 나는 필드의 이름이 정확히 모든 설정과 동일하기 때문에 이것이라고 생각합니다.Symfony2 양식이 동일한 이름의 필드 하나를 렌더링합니다

그러나 필드 번호를 지정할 때 no function mapped to a Setting class with getId1() or isId1()이라는 오류가 발생합니다.

protected $allSettings; 

public function __construct(array $allSettings) 
{ 
    $this->allSettings = $allSettings; 
} 

public function buildForm(FormBuilder $builder, array $options) 
{ 
    foreach($this->allSettings as $setting) { 
     $id = $setting->getId(); 
     $builder->add('id'.$id, 'hidden')->setData($setting); 
    } 
} 

답변

1

당신이 collection type를 사용하려고 했나 : 여기

는 코드인가?

$form = $this->createForm('collection', $yourArray, array(
    'type' => 'your settings_type' 
)); 

'your_settings_type'가 설정 개체를 편집하는 데 사용하여 FormType의 이름이어야합니다 :

는 다음과 같이 수집 양식을 만든 다음 컨트롤러의 설정의 배열을 검색합니다.

물론
public function buildForm(FormBuilder $builder, array $options) 
{ 
    $builder->add('key', 'text'); 
    $builder->add('value', 'text'); 
} 

, 귀하의 경우, 그것은 key & value 아마 아니다 :

아마 quelque 드 가전 장르를 선택했다.

ID를 사용하지 마십시오. 너는 필요 없어. FormComponent는 객체 지향 양식 프레임 워크입니다. 그것은 물건으로 일을하게하십시오. :)

+0

흠, 이것이 정확히 내가 찾고있는 것입니다. 고마워요! 그리고 팁에 감사드립니다. – tolgap

관련 문제