2014-10-30 106 views
0

我在我的數據庫中有兩個表:slidersimages。一個滑塊可以有許多圖像,所以表的結構是:學說:如何插入外鍵值

---------  -------- 
| SLIDERS | | IMAGES | 
---------  -------- 
| id | | id | 
---------  -------- 
| title | | title | 
---------  -------- 
       | sid | 
       -------- 
SID is a foreign key associated to id in "SLIDERS" table. 

在實體我把雙向關係OneToManyManyToOne,所以取滑塊結果將包含屬於他Images Objects和圖像將包含Slider Object屬於給他們。

滑塊實體:

class Sliders 
{ 

... 

/** 
* @ORM\OneToMany(targetEntity="Images", mappedBy="slider") 
*/ 
protected $images; 

圖片實體:

class Images 
{ 

... 

/** 
* @ORM\ManyToOne(targetEntity="Sliders", inversedBy="images") 
* @ORM\JoinColumn(name="sid", referencedColumnName="id") 
*/ 
protected $slider; 

它是取真舒服。但現在我不明白我怎麼可以INSERTsidImages表,因爲我沒有這個領域在我的實體除了$slider返回對象。是否有可能使用這個$slider

+0

你在一個對象上工作,其他的學說做 – jamek 2014-10-30 13:17:45

+0

所以我只能用'setSlider()'把滑塊對象作爲參數,而Doctrine會從它生成'sid'? – 2014-10-30 13:20:12

+0

yeap,你只在對象上工作 – jamek 2014-10-30 13:21:24

回答

0

以下函數應該已經在您的Slider實體(或類似的)中。

public function addImage(Image $image) 
{ 
    $image->setSlider($this); // This is the line you're probably looking for 
    $this->images[] = $image; 

    return $this; 
} 

它所做的是,如果你堅持實體它將滑塊(sid)的ID寫入你的圖像。