Symfony2:更新架构时找不到目标实体
Symfony2: The target entity cannot be found when update schema
配置文件实体
<?php
namespace Student\ProfileBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Profile
*
* @ORM\Table(name="sf2_profile")
* @ORM\Entity(repositoryClass="Student\ProfileBundle\Entity\ProfileRepository")
*/
class Profile
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\OneToOne(targetEntity="Contact", mappedBy="profile")
*/
protected $contact;
联系人实体:
<?php
namespace Student\ContactBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Contact
*
* @ORM\Table(name="sf2_contact")
* @ORM\Entity(repositoryClass="Student\ContactBundle\Entity\ContactRepository")
*/
class Contact
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\OneToOne(targetEntity="Profile", inversedBy="contact")
* @ORM\JoinColumn(name="profile_id", referencedColumnName="id")
*/
protected $profile;
当我通过命令行更新架构时,收到以下错误消息
The target entity Student\ProfileBundle\Entity\Contact can not found in Student\ProfileBundle\Entity\Profile#contact
请帮帮我。
存在命名空间错误 - 实体位于不同的包中。您应该提供实体的绝对路径而不是相对路径:
个人资料#联系关系:
/**
* @ORM\OneToOne(targetEntity="Student\ContactBundle\Entity\Contact", mappedBy="profile")
*/
protected $contact;
对于 Contact#profile 一个:
/**
* @ORM\OneToOne(targetEntity="Student\ProfileBundle\Entity\Profile", inversedBy="contact")
* @ORM\JoinColumn(name="profile_id", referencedColumnName="id")
*/
protected $profile;
配置文件实体
<?php
namespace Student\ProfileBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Profile
*
* @ORM\Table(name="sf2_profile")
* @ORM\Entity(repositoryClass="Student\ProfileBundle\Entity\ProfileRepository")
*/
class Profile
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\OneToOne(targetEntity="Contact", mappedBy="profile")
*/
protected $contact;
联系人实体:
<?php
namespace Student\ContactBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Contact
*
* @ORM\Table(name="sf2_contact")
* @ORM\Entity(repositoryClass="Student\ContactBundle\Entity\ContactRepository")
*/
class Contact
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\OneToOne(targetEntity="Profile", inversedBy="contact")
* @ORM\JoinColumn(name="profile_id", referencedColumnName="id")
*/
protected $profile;
当我通过命令行更新架构时,收到以下错误消息
The target entity Student\ProfileBundle\Entity\Contact can not found in Student\ProfileBundle\Entity\Profile#contact
请帮帮我。
存在命名空间错误 - 实体位于不同的包中。您应该提供实体的绝对路径而不是相对路径:
个人资料#联系关系:
/**
* @ORM\OneToOne(targetEntity="Student\ContactBundle\Entity\Contact", mappedBy="profile")
*/
protected $contact;
对于 Contact#profile 一个:
/**
* @ORM\OneToOne(targetEntity="Student\ProfileBundle\Entity\Profile", inversedBy="contact")
* @ORM\JoinColumn(name="profile_id", referencedColumnName="id")
*/
protected $profile;