我有一個系統,採取詳細描述項目的表單信息,將其添加到項目表,並且是爲了添加一個條目到分配的項目表中以將用戶與項目相關聯(這一點是允許每個項目有多個用戶)。無論如何,我在沒有外鍵的情況下工作,努力添加它們,但最終得到了它們。Symfony2 Doctrine2列被設置爲空
不幸的是,這個額外的錯誤導致了這個錯誤:SQLSTATE [23000]:完整性約束違規:1048只要有東西被添加到assignedProjects表中,column'projectId'就不能爲空'。
所以我的問題是,我錯過了我的代碼中的東西?
代碼到一個新的行添加到assignedProjects:
$assignedProject = new AssignedProjects();
$assignedProject->setProjectId($project->getId());
$assignedProject->setUserId($user[0]['id']);
$em = $this->getDoctrine()->getEntityManager();
$em->persist($assignedProject);
$em->flush();
爲assignProjects實體代碼: 類AssignedProjects { /** * 整數@var $ ID * * @ORM \ Column(name =「id」,type =「integer」) * @ORM \ Id * @ORM \ GeneratedValue(strategy =「AUTO」) */ private $ 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;
任何幫助,將不勝感激!
謝謝,非常有幫助!而且我打算添加日期等其他位,但爲提示而歡呼! –