У меня есть две сущности, которые я хотел бы отобразить таким образом, чтобы при создании crud для каждой сущности, когда я хочу сделать новую вставку, используя сущность Map, чтобы можно было выбирать на основе идентификатора из сущности Board.
Я пытался сделать сопоставление еще .. я не смог не уверен, правильно ли я это сделал или нет, потому что в mysql я не вижу внешний ключ после генерации sql.
Board.php
<?php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Board
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="AppBundle\Entity\BoardRepository")
*/
class Board
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
* @ORM\ManyToOne(targetEntity="Board")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="id", referencedColumnName="BoardId")
* })
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="PropertyName", type="string", length=255)
*/
private $propertyName;
/**
* @var string
*
* @ORM\Column(name="PropertyDescription", type="string", length=255)
*/
private $propertyDescription;
/**
* @var string
*
* @ORM\Column(name="PropertyPicture", type="string", length=255)
*/
private $propertyPicture;
/**
* @var string
*
* @ORM\Column(name="PropertyGlyphonic", type="string", length=255)
*/
private $propertyGlyphonic;
/**
* @var string
*
* @ORM\Column(name="PropertyPrice", type="string", length=255)
*/
private $propertyPrice;/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set propertyName
*
* @param string $propertyName
* @return Board
*/
public function setPropertyName($propertyName)
{
$this->propertyName = $propertyName;
return $this;
}
/**
* Get propertyName
*
* @return string
*/
public function getPropertyName()
{
return $this->propertyName;
}
/**
* Set propertyDescription
*
* @param string $propertyDescription
* @return Board
*/
public function setPropertyDescription($propertyDescription)
{
$this->propertyDescription = $propertyDescription;
return $this;
}
/**
* Get propertyDescription
*
* @return string
*/
public function getPropertyDescription()
{
return $this->propertyDescription;
}
/**
* Set propertyPicture
*
* @param string $propertyPicture
* @return Board
*/
public function setPropertyPicture($propertyPicture)
{
$this->propertyPicture = $propertyPicture;
return $this;
}
/**
* Get propertyPicture
*
* @return string
*/
public function getPropertyPicture()
{
return $this->propertyPicture;
}
/**
* Set propertyGlyphonic
*
* @param string $propertyGlyphonic
* @return Board
*/
public function setPropertyGlyphonic($propertyGlyphonic)
{
$this->propertyGlyphonic = $propertyGlyphonic;
return $this;
}
/**
* Get propertyGlyphonic
*
* @return string
*/
public function getPropertyGlyphonic()
{
return $this->propertyGlyphonic;
}
/**
* Set propertyPrice
*
* @param string $propertyPrice
* @return Board
*/
public function setPropertyPrice($propertyPrice)
{
$this->propertyPrice = $propertyPrice;
return $this;
}
/**
* Get propertyPrice
*
* @return string
*/
public function getPropertyPrice()
{
return $this->propertyPrice;
}
}
Map.php
<?php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Map
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="AppBundle\Entity\MapRepository")
*/
class Map
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var integer
* @ORM\Column(name="BoardId", type="integer")
*/
private $boardId;
/**
* @var string
*
* @ORM\Column(name="X", type="string", length=255)
*/
private $x;
/**
* @var string
*
* @ORM\Column(name="Y", type="string", length=255)
*/
private $y;/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set boardId
*
* @param integer $boardId
* @return Map
*/
public function setBoardId($boardId)
{
$this->boardId = $boardId;
return $this;
}
/**
* Get boardId
*
* @return integer
*/
public function getBoardId()
{
return $this->boardId;
}
/**
* Set x
*
* @param string $x
* @return Map
*/
public function setX($x)
{
$this->x = $x;
return $this;
}
/**
* Get x
*
* @return string
*/
public function getX()
{
return $this->x;
}
/**
* Set y
*
* @param string $y
* @return Map
*/
public function setY($y)
{
$this->y = $y;
return $this;
}
/**
* Get y
*
* @return string
*/
public function getY()
{
return $this->y;
}
}
Похоже, вы не читали руководство. Это отличная документация как на Symfony.com, так и на Doctrine-orm.readthedocs.org.
Прочитайте эту статью (http://symfony.com/doc/current/book/doctrine.html) и используйте этот как ссылку (http://doctrine-orm.readthedocs.org/en/latest/reference/association-mapping.html) и вы найдете ответ на этот и многие будущие вопросы.
Что вам в основном нужно сделать, это:
class Board {
/**
* @ORM\ManyToOne(targetEntity="Map")
*/
private $map;
}
Других решений пока нет …