Symfony2 Embedded Формирует отношения один ко многим

У меня есть сомнения относительно встроенных форм. У меня есть сущность «Свойства», которая имеет 2 поля «id» и «name» и сущность «Удобства», которая имеет 2 поля «id» и «value» (id = 1, value = wifi, id = 2, value = water , id = 3, value = food). Я создал эти 2 объекта, но теперь я хочу сохранить идентификатор «Свойства» и «Удобства» в отдельную 3-ю таблицу. Итак, я создал третий объект «Свойства_Услуги» и его таблица «properties_aferences». Я создал отношение «один ко многим», как показано ниже. Я хочу вставить «Удобства» в «Свойства» нажатием кнопки «Добавить удобства» в «Форме свойств» .I Я не уверен относительно того, где разместить функции «addAferences ()» и «removeAabilities ()» в файлах Entity. Ниже представлены 3 объекта:

Properties.php

<?php

namespace EpitaEvents\FormBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;

/**
* Properties
*
* @ORM\Table(name="properties")
* @ORM\Entity
*/
class Properties
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;

/**
* @var string
*
* @ORM\Column(name="name", type="string", length=100)
*/
private $name;

/**
* @ORM\OneToMany(targetEntity="Properties_Amenities", mappedBy="properties",cascade={"persist"})
**/
private $properties_amenities1;

public function __construct() {
$this->properties_amenities1 = new ArrayCollection();
}/**
* Get id
*/
public function getId()
{
return $this->id;
}

/**
* Set name
*/
public function setName($name)
{
$this->name = $name;

return $this;
}

/**
* Get name
*/
public function getName()
{
return $this->name;
}

/**
* Get properties_amenities1
*/
public function getProperties_Amenities1()
{
return $this->properties_amenities1;
}

/**
* Set properties_amenities1
*
*/
public function setProperties_Amenities1($properties_amenities1)
{
$this->properties_amenities1 = $properties_amenities1;
return $this;
}

/**
* Add Amenities
*
* @return Properties
*/
public function addAmenities(\EpitaEvents\FormBundle\Entity\Properties_Amenities $amenities)
{
$amenities->setProperties($this);
$this->amenities[] = $amenities;
return $this;
}

/**
* Remove Amenities
*
*/
public function removeAmenities(\EpitaEvents\FormBundle\Entity\Properties_Amenities $amenities) {
$this->amenities->removeElement($amenities);
}
}

Amenities.php

<?php

namespace EpitaEvents\FormBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;

/**
* Amenities
*
* @ORM\Table(name="amenities")
* @ORM\Entity
*/
class Amenities
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;

/**
* @var string
*
* @ORM\Column(name="value", type="string", length=100)
*/
private $value;

/**
* @ORM\OneToMany(targetEntity="Properties_Amenities", mappedBy="amenities")
**/
private $properties_amenities2;

public function __construct() {
$this->properties_amenities2 = new ArrayCollection();
}

/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}

/**
* Set value
*
* @param string $value
* @return Amenities
*/
public function setValue($value)
{
$this->value = $value;

return $this;
}

/**
* Get value
*
* @return string
*/
public function getValue()
{
return $this->value;
}

/**
* Set Properties
*
*/
public function setProperties_Amenities2($properties_amenities2)
{
$this->properties_amenities2 = $properties_amenities2;
return $this;
}

/**
* Get Properties
*
* @return EpitaEvents\FormBundle\Entity\Properties
*/
public function getProperties_Amenities2()
{
return $this->properties_amenities2;
}
}

(Также следует ли помещать __construct () в эти 2 файла или в файл «Properties_Aferences.php» (ниже) ???)
Properties_Amenities.php

<?php

namespace EpitaEvents\FormBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
* Properties_Amenities
*
* @ORM\Table(name="properties_amenities")
* @ORM\Entity
*/

class Properties_Amenities
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;

/**
* @ORM\ManyToOne(targetEntity="Properties", inversedBy="properties_amenities1")
* @ORM\JoinColumn(name="properties_id", referencedColumnName="id")
**/
private $properties;

/**
* @ORM\ManyToOne(targetEntity="Amenities", inversedBy="properties_amenities2")
* @ORM\JoinColumn(name="amenities_id", referencedColumnName="id")
**/
private $amenities;

function getId() {
return $this->id;
}

function getProperties() {
return $this->properties;
}

function getAmenities() {
return $this->amenities;
}

function setProperties($properties) {
$this->properties = $properties;
}

function setAmenities($amenities) {
$this->amenities = $amenities;
}
}

Может ли кто-нибудь предложить, где разместить функции «addAferences ()» и «removeAferences ()», так как я хочу сохранить «id» в «Properties.php» и «Aabilities.php» в «SEPARATE, THIRD» Сущность и таблица

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector