我正在努力實現以下設置;Symfony ORM完整性約束問題
的文章有許多評論
一個評論只有一個文章
在我成功的在沒有允許用戶插入到數據庫中的註釋分鐘這鏈接到不存在的Article_Id ...
問題出在我嘗試通過內部打印表格時加入。我收到的錯誤:
Notice: Undefined index: Article
這裏是我的控制器
$repository = $this->getDoctrine()->getRepository('AppBundle:Article');
$query = $repository->createQueryBuilder('a')
->innerJoin('a.comments','c')
->where('a.title LIKE :phrase')
->setParameter(':phrase','hello')
->getQuery();
的代碼,這裏是實體類 - 任何幫助極大的讚賞。
文章實體
<?php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity
* @ORM\Table(name="article")
*/
class Article {
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length=100)
* @Assert\NotBlank()
*/
protected $title;
/**
* @ORM\OneToMany(targetEntity="Comment", mappedBy="Article") << ERROR HERE I BELEIVE
*/
protected $comments;
/**
* @return mixed
*/
public function getId()
{
return $this->id;
}
/**
* @param mixed $id
*/
public function setId($id)
{
$this->id = $id;
}
/**
* @return mixed
*/
public function getTitle()
{
return $this->title;
}
/**
* @param mixed $title
*/
public function setTitle($title)
{
$this->title = $title;
}
/**
* @return mixed
*/
public function getComments()
{
return $this->comments;
}
/**
* @param mixed $comments
*/
public function setComments($comments)
{
$this->comments = $comments;
}
}
評論實體
<?php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use AppBundle\Entity\Article;
/**
* @ORM\Entity
* @ORM\Table(name="comment")
*/
class Comment {
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length=300)
*/
protected $text;
/**
* @ORM\Column(type="integer")
* @ORM\ManyToOne(targetEntity="article", inversedBy="comment")
* @ORM\JoinColumn(name="article_id", referencedColumnName="id", onDelete="CASCADE")
*/
protected $article_id;
/**
* @return mixed
*/
public function getId()
{
return $this->id;
}
/**
* @param mixed $id
*/
public function setId($id)
{
$this->id = $id;
}
/**
* @return mixed
*/
public function getText()
{
return $this->text;
}
/**
* @param mixed $text
*/
public function setText($text)
{
$this->text = $text;
}
/**
* @return mixed
*/
public function getArticleId()
{
return $this->article_id;
}
/**
* @param mixed $article_id
*/
public function setArticleId($article_id)
{
$this->article_id = $article_id;
}
}
你還應該在文章的__construct方法中將你的'comments'初始化爲'ArrayCollection'。 – xurshid29