2010-04-29 41 views
0

如何使用symfony在sfDoctrineRoute中訪問用戶會話?如何使用symfony在sfDoctrineRoute中訪問用戶會話?

var_dump(sfContext::getInstance()->getUser());  

返回NULL

我不能在路由

Accessing user session from a custom routing class =不良反應

+1

你究竟想達到什麼目的?你能給我們多一點背景嗎? sfContext :: getInstance()在很多情況下不是安努... ... :-) – richsage 2010-04-29 11:17:20

+0

我不想傳遞URL中的信息來檢索我的控制器操作中的路由對象。 我已經做了一個自定義的路由類,我不能檢索用戶會話 – belaz 2010-04-29 16:58:22

回答

0

你應該從你的控制器使用sfDoctrineRoute::setQuery()方法獲取當前用戶會話,並使用其sfUser生成一個查詢參考,例如,它包含的用戶憑據:

protected function executeIndex(sfWebRequest $request) 
{ 
    $query = Doctrine::getTable('Foo') 
    ->createQuery('f') 
    ->whereIn('f.access_level', $this->getUser()->getCredentials()) 
    ; 

    $this->getRoute()->setListQuery($query); 

    $this->foo_list = $this->getRoute()->getObjects(); 
} 

希望它有幫助。 PS:你應該ALWAYS avoid calling sfContext::getInstance()

相關問題