2015-01-05 3 views
1

두 엔티티를 매핑하여 각 엔티티에 대해 crud를 생성 할 때 id를 기반으로 선택할 수있는 엔티티를 사용하여 새 삽입을 만들고 싶습니다. 이사회 주체로부터. 아직 매핑을 만들려고 노력 해왔다. mysql에서 SQL 생성 후 외래 키를 볼 수 없기 때문에 내가 제대로했는지 아닌지 잘 모르겠다. 이 설명서를 읽지 않은 것처럼doctrine 일대일 관계 매핑

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; 
    } 
} 
+0

당신은'mappedBy'와'inversedBy' 주석이없는 않으며 1-1입니다 :

당신이 기본적으로해야 할 것은 many (그래서 당신은'ArrayCollection' 인스턴스를 생성하는 생성자를 추가해야합니다 ... [details : cf the docs] (http://doctrine-orm.readthedocs.org/en/latest/reference/association-mapping.html) –

답변

0

그것은 솔기. 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; 
} 
+0

나는 문서를 읽었지만 .. 나는 그곳의 예제를 이해하지 못했다 : D –