【发布时间】:2012-08-31 06:39:48
【问题描述】:
我有一个系统,该系统采用详细说明项目的表单信息,将其添加到项目表中,并且旨在将条目添加到分配的项目表中以将用户与项目相关联(这一点是允许每个项目有多个用户) .无论如何,我在没有外键的情况下完成了这项工作,努力添加它们但最终得到了它们。
不幸的是,每当向assignedProjects 表中添加某些内容时,此附加内容都会导致此错误“SQLSTATE[23000]:完整性约束违规:1048 列“projectId”不能为空”。
所以我的问题是,我是否遗漏了代码中的某些内容?
向assignedProjects添加新行的代码:
$assignedProject = new AssignedProjects();
$assignedProject->setProjectId($project->getId());
$assignedProject->setUserId($user[0]['id']);
$em = $this->getDoctrine()->getEntityManager();
$em->persist($assignedProject);
$em->flush();
assignProjects 实体的代码: 类分配项目 { /** * @var 整数 $id * * @ORM\Column(name="id", type="integer") * @ORM\ID * @ORM\GeneratedValue(strategy="AUTO") */ 私人 $id;
/**
* @var integer $projectId
*
* @ORM\Column(name="projectId", type="integer")
*/
private $projectId;
/**
* @ORM\ManyToOne(targetEntity="Projects", inversedBy="assignment")
* @ORM\JoinColumn(name="projectId", referencedColumnName="id")
*/
private $project;
/**
* @var integer $UserId
*
* @ORM\Column(name="userId", type="integer")
*/
private $userId;
/**
* @ORM\ManyToOne(targetEntity="Dev\UserBundle\Entity\User", inversedBy="assignment")
* @ORM\JoinColumn(name="userId", referencedColumnName="id")
*/
private $user;
(后面是通常的 getter 和 setter)
项目表实体是:
class Projects
{
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string $projectName
*
* @ORM\Column(name="projectName", type="string", length=255)
*/
private $projectName;
/**
* @ORM\OneToMany(targetEntity="AssignedProjects", mappedBy="project")
*/
protected $assignment;
任何帮助将不胜感激!
【问题讨论】:
标签: symfony doctrine-orm many-to-one