1
0
Fork 0
mirror of https://github.com/wallabag/wallabag.git synced 2025-10-15 19:42:08 +00:00

add relation between entry and tag

This commit is contained in:
Nicolas Lœuillet 2015-02-20 20:29:33 +01:00
parent 6d37a7e6c1
commit 0a018fe039
6 changed files with 53 additions and 122 deletions

View file

@ -2,6 +2,7 @@
namespace Wallabag\CoreBundle\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Hateoas\Configuration\Annotation as Hateoas;
@ -118,12 +119,22 @@ class Entry
*/
private $user;
/**
* @ORM\ManyToMany(targetEntity="Tag", inversedBy="entries", cascade={"persist", "merge"})
* @ORM\JoinTable(name="tags_entries",
* joinColumns={@ORM\JoinColumn(name="entry_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="tag_id", referencedColumnName="id")}
* )
*/
private $tags;
/*
* @param User $user
*/
public function __construct(User $user)
{
$this->user = $user;
$this->tags = new ArrayCollection();
}
/**
@ -381,4 +392,20 @@ class Entry
{
$this->isPublic = $isPublic;
}
/**
* @return ArrayCollection<Tag>
*/
public function getTags()
{
return $this->tags;
}
/**
* @param Tag $tag
*/
public function addTag(Tag $tag)
{
$this->tags[] = $tag;
}
}

View file

@ -4,6 +4,8 @@ namespace Wallabag\CoreBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use JMS\Serializer\Annotation\XmlRoot;
use JMS\Serializer\Annotation\ExclusionPolicy;
use JMS\Serializer\Annotation\Expose;
/**
* Tag
@ -11,12 +13,14 @@ use JMS\Serializer\Annotation\XmlRoot;
* @XmlRoot("tag")
* @ORM\Table(name="tag")
* @ORM\Entity(repositoryClass="Wallabag\CoreBundle\Repository\TagRepository")
* @ExclusionPolicy("all")
*/
class Tag
{
/**
* @var integer
*
* @Expose
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
@ -26,10 +30,16 @@ class Tag
/**
* @var string
*
* @Expose
* @ORM\Column(name="label", type="text")
*/
private $label;
/**
* @ORM\ManyToMany(targetEntity="Entry", mappedBy="tags", cascade={"persist", "merge"})
*/
private $entries;
/**
* Get id
*

View file

@ -1,93 +0,0 @@
<?php
namespace Wallabag\CoreBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* TagsEntries
*
* @ORM\Table(name="tags_entries")
* @ORM\Entity
*/
class TagsEntries
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var integer
*
* @ORM\Column(name="entry_id", type="integer")
*/
private $entryId;
/**
* @var integer
*
* @ORM\Column(name="tag_id", type="integer")
*/
private $tagId;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set entryId
*
* @param integer $entryId
* @return TagsEntries
*/
public function setEntryId($entryId)
{
$this->entryId = $entryId;
return $this;
}
/**
* Get entryId
*
* @return integer
*/
public function getEntryId()
{
return $this->entryId;
}
/**
* Set tagId
*
* @param integer $tagId
* @return TagsEntries
*/
public function setTagId($tagId)
{
$this->tagId = $tagId;
return $this;
}
/**
* Get tagId
*
* @return integer
*/
public function getTagId()
{
return $this->tagId;
}
}