2012-07-31 122 views
3

我有两个包含两个实体的包。我需要在这些实体之间创建一个manyToMany关系。实体依赖关系Symfony2

物业:

namespace Pfwd\AdminBundle\PropertyBundle\Entity; 

use Pfwd\UserBundle\Entity\User as User; 
use Doctrine\Common\Collections\ArrayCollection; 
use Doctrine\ORM\Mapping as ORM; 

/** 
* @ORM\Entity 
* @ORM\Table(name="property") 
*/ 
class Property { 

//... 
/** 
* @ORM\ManyToMany(targetEntity="User") 
* @ORM\JoinTable(name="user_role", 
*  joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")}, 
*  inverseJoinColumns={@ORM\JoinColumn(name="property_id", referencedColumnName="id")} 
*) 
* 
* @var ArrayCollection $salesAgents 
*/ 
protected $salesAgents; 

//.. 

用户:

namespace Pfwd\UserBundle\Entity; 

use Doctrine\Common\Collections\ArrayCollection; 
use Symfony\Component\Security\Core\User\UserInterface; 
use Doctrine\ORM\Mapping as ORM; 

/** 
* @ORM\Entity 
* @ORM\Table(name="user") 
*/ 
class User implements UserInterface 
{ 
    /** 
    * @ORM\Id 
    * @ORM\Column(type="integer") 
    * @ORM\GeneratedValue(strategy="AUTO") 
    * 
    * @var integer $id 
    */ 
    protected $id; 

    // ... 

酒店包取决于用户捆绑。

当我运行

php app/console doctrine:schema:update --force 

我得到以下错误:

[ErrorException]                
Warning: class_parents(): Class Pfwd\AdminBundle\PropertyBundle\Entity\User 
does not exist and could not be loaded in <SITE_PATH>/symfony2/vendor/doctrine/lib/Doctrine/ORM/Mapping/Cl 
assMetadataFactory.php line 223 

任何想法?

+2

类文件dind't存在...从你的代码片断,这是非常清楚的..你可以粘贴你的Pfwd \ AdminBundle \ PropertyBundle \ Entity \ drectory的'ls'吗? – DonCallisto 2012-07-31 07:23:28

回答

2

根据您的Property类别定义,您已定义与UserManyToMany关系。当你省略了命名空间,目前的一个将被使用:

User将被转换为Pfwd\AdminBundle\PropertyBundle\Entity\User

您必须指定FQCN:

@ORM\ManyToMany(targetEntity="Pfwd\UserBundle\Entity\User")