1
0
mirror of synced 2025-02-03 22:09:26 +03:00
2016-12-07 23:33:41 +01:00

168 lines
3.8 KiB
PHP

<?php
namespace Doctrine\Tests\Models\DDC964;
use Doctrine\Common\Collections\ArrayCollection;
/**
* @MappedSuperclass
*/
class DDC964User
{
/**
* @Id
* @GeneratedValue
* @Column(type="integer", name="user_id", length=150)
*/
protected $id;
/**
* @Column(name="user_name", nullable=true, unique=false, length=250)
*/
protected $name;
/**
* @var ArrayCollection
*
* @ManyToMany(targetEntity="DDC964Group", inversedBy="users", cascade={"persist", "merge", "detach"})
* @JoinTable(name="ddc964_users_groups",
* joinColumns={@JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@JoinColumn(name="group_id", referencedColumnName="id")}
* )
*/
protected $groups;
/**
* @var DDC964Address
*
* @ManyToOne(targetEntity="DDC964Address", cascade={"persist", "merge"})
* @JoinColumn(name="address_id", referencedColumnName="id")
*/
protected $address;
/**
* @param string $name
*/
public function __construct($name = null)
{
$this->name = $name;
$this->groups = new ArrayCollection;
}
/**
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* @param string $name
*/
public function setName($name)
{
$this->name = $name;
}
/**
* @param DDC964Group $group
*/
public function addGroup(DDC964Group $group)
{
$this->groups->add($group);
$group->addUser($this);
}
/**
* @return ArrayCollection
*/
public function getGroups()
{
return $this->groups;
}
/**
* @return DDC964Address
*/
public function getAddress()
{
return $this->address;
}
/**
* @param DDC964Address $address
*/
public function setAddress(DDC964Address $address)
{
$this->address = $address;
}
public static function loadMetadata(\Doctrine\ORM\Mapping\ClassMetadataInfo $metadata)
{
$metadata->mapField(
[
'id' => true,
'fieldName' => 'id',
'type' => 'integer',
'columnName' => 'user_id',
'length' => 150,
]
);
$metadata->mapField(
[
'fieldName' => 'name',
'type' => 'string',
'columnName'=> 'user_name',
'nullable' => true,
'unique' => false,
'length' => 250,
]
);
$metadata->mapManyToOne(
[
'fieldName' => 'address',
'targetEntity' => 'DDC964Address',
'cascade' => ['persist','merge'],
'joinColumn' => ['name'=>'address_id', 'referencedColumnMame'=>'id'],
]
);
$metadata->mapManyToMany(
[
'fieldName' => 'groups',
'targetEntity' => 'DDC964Group',
'inversedBy' => 'users',
'cascade' => ['persist','merge','detach'],
'joinTable' => [
'name' => 'ddc964_users_groups',
'joinColumns' => [
[
'name'=>'user_id',
'referencedColumnName'=>'id',
]
],
'inverseJoinColumns'=> [
[
'name'=>'group_id',
'referencedColumnName'=>'id',
]
]
]
]
);
$metadata->setIdGeneratorType(\Doctrine\ORM\Mapping\ClassMetadataInfo::GENERATOR_TYPE_AUTO);
}
}