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)  }}  

ビューで、エラーメッセージが表示されました。

4

2 に答える 2

6

フォームの会社で companyType のインスタンスを作成するため、理由がわかりました。つまり:

$cType=new CompanyType();
$company=new Company();
$company->getCompanyTypes()->add($cType);
$cForm=$this->createFrom(new CompanyForm(),$company);

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

于 2012-05-08T07:39:24.093 に答える
0

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

CompanyType エンティティが AcmeUserBundle に格納されていることは確かですか?

于 2012-05-07T08:27:34.267 に答える