在整个应用程序中,我需要每次执行多次访问User对象(Doctrine)(我的意思是每次都显示页面)等等,而不是每次都从数据库中检索它,我认为存储会更好它曾经然后重复使用它。
我可以将它存储在sfContext中吗?
答案 0 :(得分:1)
如果您指的是当前登录的用户对象,则应该已经为您自动加载了该对象。在身份验证时,系统会加载用户记录,它将保留在会话中。
在操作中,您可以使用以下命令检索用户对象:
$this->getUser()
在视图中,它已经加载到变量中:
$sf_user
答案 1 :(得分:1)
Symfony不鼓励将对象保存到会话中,例如:http://www.symfony-project.org/gentle-introduction/1_4/en/06-Inside-the-Controller-Layer#chapter_06_sub_accessing_the_user_session
...但您可以保存user_ids和其他保存查询的位。这实际上取决于您需要在所有这些页面上执行的操作是否需要整个用户对象。如果是,$this->getUser()->getGuardUser()
就是你最终会在所有地方使用的。