2016-11-26 55 views
-1

如何將服務注入當前用戶對象?Symfony:將服務注入用戶對象

使用當前用戶對象我的意思是這樣的:

//in controller 
$user = $this->get('security.token_storage')->getToken()->getUser(); 

//later I want to do this in the user class: 
function getData() { 
    $data = $this->getSomeData();//normal function 
    $data += $this->getMyService()->getSomeMoreData();//invoke service function 
} 

回答

1

這是非常不好的做法,因爲你的實體類應該是簡單對象僅用於處理自己的數據負責。

但是,如果您決定執行此操作,則可以在User類中創建容器屬性並將其注入Doctrine postLoad事件中,請參閱the documentation

我會再次強調,你不應該這樣做。我已經看到過這種做法,它會導致過於複雜的類,可能有多重責任,並且無法測試。