2014-11-03 2 views
2

내 목표는 같은 사용자가 대시 보드에 소셜 네트워크 형태를 표시하는 것입니다. 현재 3 개의 엔티티 (소셜, 사용자 소셜 및 사용자 (FOS ...))가 있습니다. 는 사용자 개체, 난 그냥 추가 :엔티티 필드 폼 Symfony2

/** 
    *@ORM\OneToMany(targetEntity="Application\SocialBundle\Entity\UserSocial", mappedBy="user") 
    */ 
    private $userSocials; 

내 사회 단체 :

class Social 
{ 
    /** 
    * @var integer 
    */ 
    private $id; 

    /** 
    * @var string 
    */ 
    private $name; 

    /** 
    * @var string 
    */ 
    private $class; 

    ... 
} 

내 UserSocial 기업 : 내가 '어디

class UserSocial 
{ 
    /** 
    * @var integer 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 


    /** 
    *@ORM\ManyToOne(targetEntity="Admin\UserBundle\Entity\User", inversedBy="userSocials") 
    */ 
    private $user; 

    /** 
    *@ORM\ManyToMany(targetEntity="Admin\SocialBundle\Entity\Social", inversedBy="userSocials") 
    */ 
    private $social; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="value", type="string", length=255) 
    */ 
    // Not really sure about it 
    private $value; 
    .... 

그리고 마지막으로, UserSocialType, 이것은이다 붙어있는 것 :

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder 
     ->add('social', 'entity', array(
     'class' => 'Admin\SocialBundle\Entity\Social', 
     'property' => 'name', 
     'required' => false, 
     )) 
     ->add('value') 
    ; 
} 

그것은 나에게 DB의 모든 사회적 이름과 가치 입력을 가진 선택을주었습니다. 나는 DB의 각 사회적 개체에 대한 가치 입력을 원합니다. 도움을 주셔서 감사합니다.

답변

0

조금 다른가요? Craete SocialType :

$builder 
     ->add('social', 'text', array(
      'data' => $existingSocial 
     )) 
     ... 
    ; 

UserSocialType :

$builder 
    ->add('social', new SocialType(), array(
     // pass social to the Social type 
     ... 
    )) 
    ... 
; 

PS //이 여기, 내 일반적인 생각 몇 가지 잘못된 라인 내 조각이다, 당신은 텍스트 필드에 개체를 전달해서는 안 하지만 당신은 텍스트 값에서 개체를 얻을 수있는 데이터 변압기를 사용할 수 있습니다. 또한 귀하의 UserSocial 엔터티가 올바르게 구성되지 않은 것 같아요 $social 필드는 manyToOne 관계를 받아야합니다

관련 문제