2013-04-22 2 views
1

내가이 편집 될 때 내가 데이터를 채울하기 위해 내부 형태의 일부 개체를 전달하고자하는 다음과 같은 형식 :패스/바인드 데이터 객체가 형성

  public function __construct($em, $id) 
     { 
      $this->_em = $em; 
     } 

     public function buildForm(\Symfony\Component\Form\FormBuilderInterface $builder, array $options) 
     {   
      $builder->add('accessInfo', new AccessInfoType($this->_em, $options[ 'entities' ][ 'user' ]) , array(
                   'attr' => array('class' => 'input-medium'), 
                   'required'  => false, 
                   'label'   => false 
                  ) 
      ); 
      $builder->add('profileInfo', new ProfileInfoType($this->_em, $options[ 'entities' ][ 'profile' ]) , array(
                   'required'  => false, 
                   'label'   => false 
                  ) 
      ); 
     } 

     public function setDefaultOptions(\Symfony\Component\OptionsResolver\OptionsResolverInterface $resolver) 
     { 
      $resolver->setDefaults($this->getDefaultOptions(array())); 
      return $resolver->setDefaults(array()); 
     } 

     /** 
     * {@inheritDoc} 
     */ 
     public function getDefaultOptions(array $options) 
     { 
      $options = parent::getDefaultOptions($options); 
      $options[ 'entities' ] = array(); 

      return $options; 
     } 

     public function getName() 
     { 
      return 'UserType'; 
     } 

하는 나는 다음과 같은 코드로 인스턴스화 :

$form = $this->createForm(new UserType($em), null, array('entities' => array('user' => $userObj, 'profile' => $profileObj))); 

내가 일단 생성자를 통해 필요한 데이터를 포함하는 객체가 사람이 내가 폼에 해당 개체를 결합 수있는 방법을 알고 있나요?

 
class ProfileInfoType extends AbstractType 
{ 
    private $_em; 

    public function __construct($em, $dataObj) 
    { 
     $this->_em = $em; 
     $this->_dataObj = $dataObj; 
    } 

고맙습니다. 컨트롤러 내부

답변

0

요 형태로 더 들어

$form->bind($request); 

에 바인드

public function newAction(Request $request) 

다음을 요청 데이터를

$request = $this->getRequest(); 

을 얻거나 방법을 통해 요청 매개 변수한다 세부 정보는 http://symfony.com/doc/2.1/book/forms.html#handling-form-submissions

입니다.
+0

덕분에 미치는, 어쩌면 내가 missexplained하거나 제대로 질문을 이해하지 못했다. Symfony2가 템플릿 인쇄 시간에 양식을 채우도록하기 위해 객체를 내부/내장 된 양식에 바인딩하려고합니다. – user846226

+0

@ user846226 나는 정말로 이해하지 못한다고 생각합니다 ... 당신이 달성하고자하는 것을 정확히 설명해 주시겠습니까 ... 당신은 콜렉션에 대해 이야기하고있을 것입니다 (http://symfony.com/doc/2.1/cookbook/form /form_collections.html). – Michi

+0

안녕하세요 미치. 아니 컬렉션에 대해 말하는 게 아닙니다. 나는 Symfony2가 그 중첩 된 폼을 데이터로 채우 길 원하기 때문에 다른 폼 폼 타입을 포함하는 부모 폼 타입을 만들었습니다. 생성자를 통해 데이터를 자식 폼으로 전달하는 방법을 찾고 있습니다. . 자식이 양식을 채우는 객체를 얻으면 양식이 채워지는 호출을해야합니다. 지금은 폐쇄 http://symfony.com/doc/current/cookbook/form/use_empty_data.html을 통해 그것을 달성하기 위해 노력하고있어. – user846226

0

이 잘 사용하기 위해 ATTR를 추가 작품 같은 문제가 발생하고 inherit_data

public function configureOptions(OptionsResolver $resolver) 
{ 
    $resolver->setDefaults(array(
     'inherit_data' => true, 
    )); 
} 

참조로이 고정 된 HTML 속성 '값은'어쩌면이 양식 유형 따라 달라집니다 당신을 도울 수 있어요.

나뭇 가지

{{ form_label(blogpostform.title) }} 
{{ form_widget(blogpostform.title, {'attr': {'value': titleView }}) }} 
{{ form_errors(blogpostform.title) }}