Optimized draft for MemberRelation

This commit is contained in:
Kevin Frantz
2018-11-26 21:41:06 +01:00
parent ce8f53780a
commit b23f507da8
16 changed files with 296 additions and 46 deletions

View File

@@ -3,12 +3,22 @@
namespace App\Entity\Meta\Relation;
use App\Entity\Meta\AbstractMeta;
use App\Entity\Source\SourceInterface;
use Doctrine\ORM\Mapping as ORM;
/**
* @author kevinfrantz
*/
abstract class AbstractRelation extends AbstractMeta implements RelationInterface
{
/**
* @ORM\OneToOne(targetEntity="App\Entity\Source\AbstractSource",cascade={"persist", "remove"})
* @ORM\JoinColumn(name="source_id", referencedColumnName="id",onDelete="CASCADE")
*
* @var SourceInterface
*/
protected $source;
public function __construct()
{
parent::__construct();

View File

@@ -5,8 +5,40 @@ namespace App\Entity\Meta\Relation\Member;
use App\Entity\Meta\Relation\AbstractRelation;
use App\Entity\Attribut\MembersAttribut;
use App\Entity\Attribut\MembershipsAttribut;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
/**
* @author kevinfrantz
* @ORM\Entity()
*/
class MemberRelation extends AbstractRelation implements MemberRelationInterface
{
use MembersAttribut,MembershipsAttribut;
/**
* Many Sources have many Source Members.
*
* @var Collection|MemberRelationInterface[]
* @ORM\ManyToMany(targetEntity="MemberRelation", inversedBy="memberships",cascade={"persist", "remove"})
* @ORM\JoinTable(name="source_members",
* joinColumns={@ORM\JoinColumn(name="source_id", referencedColumnName="id",onDelete="CASCADE")},
* inverseJoinColumns={@ORM\JoinColumn(name="member_id", referencedColumnName="id",onDelete="CASCADE")}
* )
*/
protected $members;
/**
* @var Collection|MemberRelationInterface[]
* @ORM\ManyToMany(targetEntity="MemberRelation",mappedBy="members")
*/
protected $memberships;
public function __construct()
{
parent::__construct();
$this->members = new ArrayCollection();
$this->memberships = new ArrayCollection();
}
}

View File

@@ -4,7 +4,6 @@ namespace App\Entity\Meta\Relation\Parent;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\Collection;
use App\Entity\Source\SourceInterface;
/**
* @author kevinfrantz
@@ -12,14 +11,6 @@ use App\Entity\Source\SourceInterface;
*/
class CreatorRelation extends AbstractParentRelation implements CreatorRelationInterface
{
/**
* @ORM\OneToOne(targetEntity="App\Entity\Source\AbstractSource",cascade={"persist", "remove"})
* @ORM\JoinColumn(name="source_id", referencedColumnName="id",onDelete="CASCADE")
*
* @var SourceInterface
*/
protected $source;
/**
* @ORM\ManyToMany(targetEntity="CreatorRelation",mappedBy="childs")
*