我有两个实体的捆绑包。我需要在这些实体之间创建一个manyToMany关系。
属性:
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
有什么想法吗?
答案 0 :(得分:2)
根据您的Property
班级定义,您已与ManyToMany
定义User
关系。当您省略命名空间时,将使用当前的命名空间:
User
将被翻译为Pfwd\AdminBundle\PropertyBundle\Entity\User
您必须指定FQCN:
@ORM\ManyToMany(targetEntity="Pfwd\UserBundle\Entity\User")