2014-01-15 112 views
2

使用ZF2和Doctrine 2.嘗試使用實體管理器插入數據。學說2「發現關聯類型的實體,但期望」

我有這樣的實體:

class Link 
{ 
    /** 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    * @ORM\Column(type="integer") 
    */ 
    protected $link_id; 

    /** @ORM\Column(type="string", length=255, nullable=false) */ 
    protected $title; 

    /** @ORM\Column(type="string", length=255, nullable=false) */ 
    protected $short_description; 

    /** @ORM\Column(columnDefinition="LONGTEXT NOT NULL") */ 
    protected $description; 

    /** @ORM\Column(type="string", length=255, nullable=false) */ 
    protected $webpage_url; 

    /** @ORM\Column(type="string", length=255, nullable=false) */ 
    protected $email; 

    /** @ORM\Column(type="string", length=255, nullable=false) */ 
    protected $meta_keys; 

    /** @ORM\Column(type="datetime", columnDefinition="DATETIME NOT NULL") */ 
    protected $date_created; 

    /** 
    * @ORM\ManyToOne(targetEntity="Schema\Entity\Category") 
    **/ 
    private $category_id; 

    public function __get($property) { 
     if (property_exists($this, $property)) { 
       return $this->$property; 
     } 
    } 

    public function __set($property, $value) { 
     if (property_exists($this, $property)) { 
      $this->$property = $value; 
     } 
     return $this; 
    } 
} 

class LinkType 
{ 
    /** 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    * @ORM\Column(type="integer") 
    */ 
    protected $link_type_id; 

    /** @ORM\Column(type="string", length=255, nullable=false) */ 
    protected $name; 

    public function __get($property) { 
     if (property_exists($this, $property)) { 
       return $this->$property; 
     } 
    } 

    public function __set($property, $value) { 
     if (property_exists($this, $property)) { 
      $this->$property = $value; 
     } 
     return $this; 
    } 
} 

當我嘗試這樣:

$link = new Link(); 
$link->title = 'aa'; 
$link->category_id = array('1'); 
$link->link_type_id = array('1'); 
$link->description = 'adsfa'; 
$link->webpage_url = 'asdfad'; 
$link->short_description = 'aa'; 
$link->email = 'asdf'; 
$link->meta_keys = 'asdf'; 
$link->date_created ='2014-01-14 13:26:54'; 


$this->getObjectManager()->persist($link); // ????? 
$this->getObjectManager()->flush(); 

給我錯誤:上找到關聯架構\實體\鏈接#CATEGORY_ID類型的實體,但預計模式\實體\目錄

我嘗試也把級聯= {「堅持」}在annontations,但給我的錯誤:類「 '不存在

爲什麼?

回答

3

你必須在CATEGORY_ID設置爲Schema\Entity\Category[]一個值,而不是array()

+0

有點困惑。我怎樣才能做到這一點?我只想將value = 1與其他字符串數據一起傳遞給link實體。 – Nikitas

+0

對於上述問題,我很抱歉。你是對的,我意識到我不知道數據庫協會真的在做什麼......去學習。謝謝。 – Nikitas