2012-01-25 4 views
2

私はsymfonyの2を使用していると私のような別のバンドル内の2つのエンティティがあります。エンティティ

//this class overrides fos_user class 
//User\UserBundle\Entity\User 
class User extends BaseUser 
{ 
    //.. 

    /** 
     * @ORM\OneToMany(targetEntity="News\AdminBundle\Entity\News", mappedBy="author_id") 
     */ 
     protected $news_author; 

    //... 
} 

//News\AdminBundle\Entity\News 
class News 
{ 
    //... 

    /** 
     * @ORM\ManyToOne(targetEntity="\User\UserBundle\Entity\User", inversedBy="news_author") 
     * @ORM\JoinColumn(name="author_id", referencedColumnName="id") 
     */ 
     protected $news_author; 

    //... 
} 

両方のクラス(エンティティ)が正常に動作します。私は正常にfos_userバンドルを登録と他のものとセットアップしている。 Newsクラスの場合も同じです。それから、コードで示されているように、これら2つのクラスOneTo Many(User - > News)の間の関係を構築します。これはエラーなく正常に動作し、ユーザーに属するニュースを追加できます。ニュースは(アーカイブのように)掲載されている場合

->add('year', 'entity', array(
    'class' => 'NewsAdminBundle:News', 
    'query_builder' => function(EntityRepository $er) { 
     return $er->createQueryBuilder('u') 
        ->groupBy('u.year') 
         ->orderBy('u.year', 'DESC'); 
     },)) 

このフォームは年間私に示しています。私のようなエンティティクラスでフォームを構築するときに問題があります。年は細かい表示されているが、私は(ポスト)を提出する際の形式は、私がエラーを持っている:

Class User\UserBundle\Entity\News does not exist

私は、このエラーが原因で、私の問題がある文

$form->bindRequest($request);

に接続されていることを把握します異なるバンドルに2つのエンティティがあるこのエラーを解決するにはどうすればよいですか?

編集: 私はこの問題を解決しました。私は

php app/console doctrine:generate:entities User 
php app/console doctrine:generate:entities News 

を実行すると、その後教義は、ユーザーとのニュースにゲッターとセッターを生成します。エンティティのニュースでは、私はこの方法に注意を払っていなかったと私は今、すべてが正常に動作します。この

/** 
* Add news_author 
* 
* @param News\AdminBundle\Entity\News $newsAuthor 
*/ 
public function addNews(News\AdminBundle\Entity\News $newsAuthor) 
{ 
    $this->news_author[] = $newsAuthor; 
} 

にそれを変更する方法

/** 
* Add news_author 
* 
* @param User\UserBundle\Entity\News $newsAuthor 
*/ 
public function addNews(User\UserBundle\Entity\News $newsAuthor) 
{ 
    $this->news_author[] = $newsAuthor; 
} 

を生成します。すべての答えをありがとう。

あなたは接頭辞バックスラッシュを削除する必要が
+0

でノートを参照してください 'クラス'=> 'ニュース\\ AdminBundle \\エンティティ\\ニュース' NewsAdminBundle:ニュース '何か変わる? – webda2l

+0

私はそれを変更しますが、それでも動作しません。 – repincln

答えて

2

/** 
    * @ORM\ManyToOne(targetEntity="User\UserBundle\Entity\User", inversedBy="news_author") 
    * @ORM\JoinColumn(name="author_id", referencedColumnName="id") 
    */ 
    protected $news_author; 

- 代わりに=> ' 'クラス' はDoctrine documentation

+0

私はついにこのバックスラッシュが私の問題を解決すると考えましたが、エラーは同じです。私はキャッシュをクリアします。 – repincln

+0

パラメータ '--no-debug'でキャッシュをクリアしようとしましたか? – kuboslav

+0

--no-debugでキャッシュをクリアしてから、エラーがスローされます:[ReflectionException] クラスUser \ UserBundle \ Entity \ Newsは存在しません – repincln

関連する問題