在我实体中的一种方法中,我正在使用参数“ addlinkedDocuments”。
class Documents {
/**
* Many Documents link to many Documents.
* @ORM\ManyToMany(targetEntity="App\Entity\Documents", fetch="EAGER")
* @ORM\JoinTable(name="documents_documents",
* joinColumns={@JoinColumn(name="link_origin", referencedColumnName="id")},
* inverseJoinColumns={@JoinColumn(name="link_destination", referencedColumnName="id")}
* )
* @Groups("documents")
*/
private $linkedDocuments;
public function __construct() {
$this->linkedDocuments = new ArrayCollection();
}
/**
* @return Collection|linkedDocuments[]
*/
public function getlinkedDocuments(): Collection
{
return $this->linkedDocuments;
}
public function addlinkedDocuments(linkedDocuments $linkedDocuments): self
{
if (!$this->linkedDocuments->contains($linkedDocuments)) {
$this->linkedDocuments[] = $linkedDocuments;
}
return $this;
}
public function removelinkedDocuments(linkedDocuments $linkedDocuments): self
{
if ($this->linkedDocuments->contains($linkedDocuments)) {
$this->linkedDocuments->removeElement($linkedDocuments);
}
return $this;
}
但是我收到错误消息:
方法中参数“ linkedDocuments”的类型提示 类“ App \ Entity \ Documents”中的“ addlinkedDocuments”无效。
答案 0 :(得分:2)
据我所知,您在Documents
上获得了自指多对多关系。
因此,任何给定的文档都可以与许多其他文档相关。
linkedDocuments
仅仅是保存Documents
集合的变量的名称。
我的观点是,链接文档的类型不是linkedDocuments
,而是Documents
,因此应相应更改类型提示:
/**
* @return Collection|Document[]
*/
public function getlinkedDocuments(): Collection
{
return $this->linkedDocuments;
}
public function addlinkedDocument(Document $linkedDocument): self
{
if (!$this->linkedDocuments->contains($linkedDocument)) {
$this->linkedDocuments[] = $linkedDocument;
}
return $this;
}
public function removelinkedDocument(Document $linkedDocument): self
{
if ($this->linkedDocuments->contains($linkedDocument)) {
$this->linkedDocuments->removeElement($linkedDocument);
}
return $this;
}
编辑:按照塞拉德的建议,我已经去掉了方法,并将其重命名以更好地反映复数。因此,您的类应称为Document
,以便任何给定的文档都可以链接到许多文档。