ManyToOne向FOS_User_Bundle用户表添加外部约束的问题

时间:2015-03-22 23:11:48

标签: mysql symfony doctrine entity many-to-one

我遇到了向我的fos_user表添加外键约束的问题。具体来说,问题在于ManyToOne关系。我没有遇到过这个问题在另一个其他实体上做ManyToOne和OneToMany关系,就是这个。

错误讯息:

[Doctrine\DBAL\Exception\DriverException]                             
  An exception occurred while executing 'ALTER TABLE fos_user ADD CONS  
  TRAINT FK_957A6479309D1878 FOREIGN KEY (university_id) REFERENCES Un  
  iversities (id)':                                                     
  SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constrai  
  nt 

实体:     

namespace Project\UserBundle\Entity;

use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="fos_user")
 */
class User extends BaseUser
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     * @ORM\OneToMany(targetEntity="Project\UserBundle\Entity\Product", mappedBy="user")
     */
    protected $id;

    /**
     * @ORM\ManyToOne(targetEntity="Project\UserBundle\Entity\Universities", inversedBy="users")
     */
    private $university;

1 个答案:

答案 0 :(得分:0)

事实证明,在fos_user表上创建外键存在问题,并且通过导出数据库,删除数据库然后重新创建它,映射可以正常工作。