我遇到了向我的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;
答案 0 :(得分:0)
事实证明,在fos_user表上创建外键存在问题,并且通过导出数据库,删除数据库然后重新创建它,映射可以正常工作。