0
嗨,兄弟,我有一個問題。 我有以下代碼:從實體類訪問存儲庫
/**
* Callback transform array of checkboxes to string and store it in database
*
* @ORM\PrePersist()
* @ORM\PreUpdate()
*/
public function onPreUpdate()
{
if($this->id == 13)
{
$data = implode('-', $this->value);
$this->setValue($data);
}
}
/**
* Callback retrieved data from database transform to string to fill our field
*
* @ORM\PostLoad()
*/
public function onPostLoad()
{
if($this->id == 13)
{
$data = (strstr($this->value, '-') !== false) ? explode('-', $this->value) : array($this->value);
$this->setValue($data);
}
}
我必須這樣做,以變換字符串複選框的數組當我添加/更新數據,反之亦然,當我從數據庫中檢索數據,把它們放在複選框部件。 但現在是靜態的就是通過ID,我需要檢查自己的輸入類型,如果它是運行上面的代碼的複選框... 我不能做到這一點:
$this->getDoctrine()->getRepository();
在我的實體類,因爲這是行不通的,對於數據映射器來說這不是個好主意......所以我該怎麼做呢?
感謝我的英文不好
NVM不是編程 的好方法! 現在我知道該怎麼做了!我不知道從另一個proporerty檢索數據時它與其他實體類有關係,所以我可以在我的實體中訪問它: '$ options-> getWidget()' – marcio 2012-07-06 19:47:55