Doctrine m:n uložení z inverzní strany 2
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Phalanx
- Člen | 310
Minulá diskuze se mi zvrhla v použití soft delete, proto ho v tomto příkladu nepoužiju (https://forum.nette.org/…erzni-strany).
Chyba je, když se přidává article nebo tag: Call to a member function contains() on array
Nerozumím proč je proměnná $articles i $tags array
<?php
class Article
{
/**
* Many Tags have Many Articles.
* @var Tag[]|ArrayCollection
* @ORM\ManyToMany(targetEntity="Tag", inversedBy="articles")
* @ORM\JoinTable(name="article_tag")
*/
private $tags;
public function __construct()
{
$this->tags = new ArrayCollection;
}
/**
* @return Tag[]
*/
public function getTags()
{
return $this->tags;
}
/**
* @param Tag[] $tags
* @return $this
*/
public function setTags($tags)
{
$this->tags = $tags;
return $this;
}
public function addTag(Tag $tag)
{
if (!$this->tags->contains($tag)) {
$this->tags->add($tag);
$tag->addArticle($this);
}
}
}
class Tag
{
private $articles;
/**
* Many Articles have Many Tags.
* @var Article[]|ArrayCollection
* @ORM\ManyToMany(targetEntity="Article", mappedBy="tags")
*/
private $articles;
public function __construct()
{
$this->articles = new ArrayCollection;
}
/**
* @return Articles[]
*/
public function getArticles()
{
return $this->articles;
}
/**
* @param Article[] $articles
* @return $this
*/
public function setArticles($articles)
{
$this->articles = $articles;
return $this;
}
public function addArticle(Article $article)
{
if (!$this->articles->contains($article)) {
$this->articles->add($article);
$article->addTag($this);
}
}
}
?>
Děkuji za pomoc
Editoval Phalanx (23. 3. 2017 10:15)
- David Matějka
- Moderator | 6445
zadne dalsi metody, ktere pracuji s tags (nebo articles) tam uz nemas?