我正在做一个博客项目。所以我有一个文章类和一个评论博客类。
但是当我想链接两者时,我遇到了错误:
[映射] 失败 - 实体类"AppBundle\Entity\Article"映射 无效: * 关联 AppBundle\Entity\Article#commentaires 是指拥有方字段 AppBundle\Entity\Commentaire_blog#message 不是定义为关联,而是定义为字段。 * 关联 AppBundle\Entity\Article#commentaires 是指拥有方字段 AppBundle\Entity\Commentaire_blog#message 不存在。
[映射] 失败 - 实体类"AppBundle\Entity\Commentaire_blog" 映射无效: * 映射 AppBundle\Entity\Commentaire_blog#article 和 AppBundle\Entity\Article#commentaires 与每个映射不一致 其他。
我有点迷茫...
这是我的两堂课:
* Article
*
* @ORMTable(name="article")
* @ORMEntity(repositoryClass="AppBundleRepositoryArticleRepository")
*/
class Article
{
/**
* @var int
*
* @ORMColumn(name="id", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORMColumn(name="Titre", type="text")
*/
private $titre;
/**
* @var string
*
* @ORMColumn(name="article", type="text")
*/
private $article;
/**
* @var DateTime
*
* @ORMColumn(name="date_article", type="datetime")
*/
private $dateArticle;
/**
* @ORMOneToMany(targetEntity="Commentaire_blog", mappedBy="messa")
*/
private $commentaires;
public function __construct()
{
$this->commentaires = new ArrayCollection();
}
/**
* @return Collection|Commentaire_blog[]
*/
public function getCommentaires()
{
return $this->commentaires;
}
/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set titre
*
* @param string $titre
*
* @return Article
*/
public function setTitre($titre)
{
$this->titre = $titre;
return $this;
}
/**
* Get titre
*
* @return string
*/
public function getTitre()
{
return $this->titre;
}
/**
* Set article
*
* @param string $article
*
* @return Article
*/
public function setArticle($article)
{
$this->article = $article;
return $this;
}
/**
* Get article
*
* @return string
*/
public function getArticle()
{
return $this->article;
}
/**
* Set dateArticle
*
* @param DateTime $dateArticle
*
* @return Article
*/
public function setDateArticle($dateArticle)
{
$this->dateArticle = $dateArticle;
return $this;
}
/**
* Get dateArticle
*
* @return DateTime
*/
public function getDateArticle()
{
return $this->dateArticle;
}
第二个:
* Commentaire_blog
*
* @ORMTable(name="commentaire_blog")
* @ORMEntity(repositoryClass="AppBundleRepository Commentaire_blogRepository")
*/
class Commentaire_blog
{
/**
* @var int
*
* @ORMColumn(name="id", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORMColumn(name="usernamne", type="string", length=255)
*/
private $usernamne;
/**
* @var string
*
* @ORMColumn(name="message", type="text")
*/
private $message;
/**
* @var bool
*
* @ORMColumn(name="is_visible", type="boolean")
*/
private $isVisible;
/**
* @return mixed
*/
public function getArticle()
{
return $this->article;
}
/**
* @param mixed $article
*/
public function setArticle($article)
{
$this->article = $article;
}
/**
* @ORMManyToOne(targetEntity="Article", inversedBy="commentaires")
* @ORMJoinColumn(nullable=true)
*/
private $article;
/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set usernamne
*
* @param string $usernamne
*
* @return Commentaire_blog
*/
public function setUsernamne($usernamne)
{
$this->usernamne = $usernamne;
return $this;
}
/**
* Get usernamne
*
* @return string
*/
public function getUsernamne()
{
return $this->usernamne;
}
/**
* Set message
*
* @param string $message
*
* @return Commentaire_blog
*/
public function setMessage($message)
{
$this->message = $message;
return $this;
}
/**
* Get message
*
* @return string
*/
public function getMessage()
{
return $this->message;
}
/**
* Set isVisible
*
* @param boolean $isVisible
*
* @return Commentaire_blog
*/
public function setIsVisible($isVisible)
{
$this->isVisible = $isVisible;
return $this;
}
/**
* Get isVisible
*
* @return bool
*/
public function getIsVisible()
{
return $this->isVisible;
}
}
任何想法如何使链接正确...
试试这个:
类文章:
/**
* @ORMOneToMany(targetEntity="Commentaire_blog", mappedBy="article")
*/
private $commentaires;
第 commentaire_blog 类:
/**
* @ORMManyToOne(targetEntity="Article", inversedBy="commentaires")
* @ORMJoinColumn(nullable=true)
*/
private $article;
另外,请考虑将 getCommentaires 结果转换为 Array:
public function getCommentaires()
{
return $this->commentaires->toArray();
}
要了解有关每个关系的拥有方和反向面的更多信息,请尝试阅读以下内容:关联:拥有方和反面。