我想用完全可測性將當前登錄用戶的id注入到Doctrine_Record類的creator_id字段中,而不使用sfContext單例。我發現了幾個Doctrine行爲,如http://www.symfony-project.org/plugins/sfDoctrineActAsSignablePlugin,但是他們在一個偵聽器中訪問sfContext單例,或者在Doctrine_Record的子類的save方法中(我發現另一個例子)。 我想在symfony控制器中找到一個入口點,在這裏我可以注入當前登錄的用戶,並將其保留到請求結束。 我該怎麼辦? 希望我已經清楚了。symfony 1.4 - 將當前登錄用戶注入Doctrine模型
編輯: 作爲@jeremy建議,我做了一個自定義過濾器:
class userFilter extends sfFilter
{
public function execute($filterChain)
{
$user = $this->getContext()->getUser();
if ($user->isAuthenticated()) {
$guard = $user->getGuardUser();
Doctrine_Manager::getInstance()->setAttribute('logged_in_user', $guard->getId());
}
// Execute next filter
$filterChain->execute();
}
}
所以現在我的測試中,我的任務是sfContext免費的,我只需要設置正確的用戶ID在某一點開始之前與分貝的互動:
Doctrine_Manager::getInstance()->setAttribute('logged_in_user', sfConfig::get('default_user'));
我在想,當用戶登錄時添加的用戶id作爲Doctrine_Manager實例的PARAM,然後得到帕拉姆回任何地方模型 – giorrrgio 2011-05-23 15:43:12
嗨giorrrgio - 你能再詳細一點嗎?例如在你需要使用sfContext的那一刻? :-) – Flukey 2011-05-23 18:34:16