2012-05-07 4 views
3

を管理する必要があります私はインターネットからの回答を検索しますが、私は理由を見つけることができません: 私は、テーブルの会社、テーブルcompanyTypeを持っている:エンティティ

/** 
* Acme\UserBundle\Entity\Company 
* 
* @ORM\Table(name="company") 
* @ORM\Entity 
*/ 
class Company 
{ 
/** 
* @var integer $id 
* 
* @ORM\Column(name="id", type="integer", nullable=false) 
* @ORM\Id 
* @ORM\GeneratedValue(strategy="IDENTITY") 
*/ 
private $id; 
/** 
* @var CompanyType 
* 
* @ORM\ManyToOne(targetEntity="CompanyType") 
* @ORM\JoinColumns({ 
* @ORM\JoinColumn(name="company_type_id", referencedColumnName="id") 
* }) 
*/ 
private $companyType; 
... 

}

/** 
* Acme\UserBundle\Entity\CompanyType 
* 
* @ORM\Table(name="company_type") 
* @ORM\Entity 
*/ 
class CompanyType 
{ 
/** 
* @var integer $id 
* 
* @ORM\Column(name="id", type="integer", nullable=false) 
* @ORM\Id 
* @ORM\GeneratedValue(strategy="IDENTITY") 
*/ 
private $id; 
/** 
* @var string $name 
* 
* @ORM\Column(name="name", type="string", length=45, nullable=true) 
*/ 
private $name; 
.... 
public function __toString(){ 
    return $this->name; 
} 

}
した後、にformTypeクラスで:

class CompanyForm extends AbstractType 
{ 
    public function buildForm(FormBuilder $builder, array $options) 
    { 
    $builder 
     ->add('name') 
     ->add('siren') 
     ->add('siret') 
     ->add('tvaCommun') 
     ->add('apeCode') 
    ; 
    $builder->add('activity','collection', array('type'=> new ActivityForm()));  
    $builder->add('companyType','entity',array(
      'class' => 'AcmeUserBundle:CompanyType', 
    )); 
    } 
... 
} 

私はフォームを使用しようとしています:

{{ form_row(company.companyType) }} 

ビューで、私はエラーメッセージが表示されます。

+1

複数のエンティティマネージャが定義されていますか?フォームが1つのエンティティマネージャ(デフォルト)を使用していて、コントローラが別のエンティティマネージャを使用しているときに実行します。私は一般的に、エンティティマネージャの名前を渡す必要があります。 – Cerad

答えて

6

私はその理由を知りました。なぜなら私は会社のcompanyTypeのインスタンスをフォームのために作ります。意味:

これがこの例外をスローする理由です。フォームのcompanyTypeを初期化しないでください。私はそれを選択する必要があります。
誰にも助けてくれてありがとう。これが誰かを助けることができると願っています。

0

このエラーは、エンティティフィールドに渡されたCompanyTypeオブジェクトをEntityManagerで管理する必要があることを意味します。つまり、エンティティマネージャを使用してデータベースに永続化する必要があります。

CompanyTypeエンティティがAcmeUserBundleに保存されていますか?

+0

私は 'CompanyType'はエンティティではないと思っています。だから彼は 'CompanyType' –

関連する問題