2012-04-10 4 views
2

Symfony 2 및 FOSUserBundle을 사용하여 응용 프로그램을 만들고 있습니다. 내 자신의 UserBundle이 올바르게 구성되어 있습니다. 내 사용자 엔티티에는 각 카테고리별로 다른 양식 (예 : 위치 설정, 개인 설정 등)이 많은 속성이 있으므로 각 카테고리를 다른 페이지에 표시 할 수 있습니다.FOSUserBundle이있는 다중 프로필 양식

FOSUserBundle 문서에있는 사용자 정의 프로필 양식을 만드는 방법을 알고 있지만 이미 여러 FormTypes와 추가 컨트롤러를 만들었지 만 현재 사용자 데이터로 채울 수는 없습니다. 나는

$user = $this->container->get('security.context')->getToken()->getUser(); 
// Try 1 
$form = $this->createForm(new InnerCharacteristicsType()); 
// Try 2 
$form = $this->createForm(new InnerCharacteristicsType($user)); 
// Try 3 
$form = $this->createForm(new InnerCharacteristicsType(), $user); 
// Try 4 
$form = $this->createForm(new InnerCharacteristicsType(), array('user' => $user); 

return $this->render('AcmeUserBundle:EditProfile:inner.html.twig', array('form' => $form->createView())); 

다음 나는 또한 내 InnerCharacteristics을 추가하여 새로운 형태에게 서비스를 만들려고

services.yml에 양식을 (물론, 내가 동시에 그들을 시도하지 않았다)을 시도 그러나 이것에 대한 어떤 문서도 찾을 수 없었습니다. FOSUserBundle 자체의 profile.xml도 매개 변수가 가리키는 위치를 찾을 수 없어 매우 도움이되지 않습니다. 또한 XML to YAML 변환은 그리 쉽지 않습니다. FOSUserBundle 구성이 XML이고 UserBundle 구성이 YAML이므로이 작업에 대한 문서는별로 도움이되지 않습니다.

acme_user.inner_characteristics_profile.form: 
    class: Symfony\Component\Form\Form 
    factory_service: form.factory 
    factory_method: createNamed 

나는 누군가가 다음에 어디 가야 좀 포인터를 줄 수 있기를 바랍니다 :

이 내가 지금 내 services.yml에있는 것입니다.

답변

0

이는 형태로 만들 수있는 올바른 방법입니다 :

$form = $this->createForm(new InnerCharacteristicsType(), $user); 

이 같은해야 할 양식 내부의

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    // Add fields 
    $builder->add('name', 'text', array('label' => 'Name:')); 
} 

를이 내부 user 개체에서 name 속성을로드한다을 귀하의 양식. 양식이 성공적으로로드 되었습니까?