Session 在symfony 1.4中存储用户原则对象

Session 在symfony 1.4中存储用户原则对象,session,doctrine,symfony-1.4,Session,Doctrine,Symfony 1.4,在整个应用程序中,我需要在每次执行时多次访问用户对象(原则)(我是指每次显示页面)等等,我认为与其每次都从数据库中检索它,不如先存储一次,然后再重用它 我可以将其存储在sfContext中吗?如果您引用的是当前登录的用户对象,则应该已经为您自动加载了该对象。在身份验证时,系统加载用户记录,并将其保留在会话中 在操作中,您可以通过以下方式检索用户对象: $this->getUser() 在视图中,它已加载到变量中: $sf_user Symfony不鼓励将对象保存到会话中,例如,请参见此

在整个应用程序中,我需要在每次执行时多次访问用户对象(原则)(我是指每次显示页面)等等,我认为与其每次都从数据库中检索它,不如先存储一次,然后再重用它


我可以将其存储在sfContext中吗?

如果您引用的是当前登录的用户对象,则应该已经为您自动加载了该对象。在身份验证时,系统加载用户记录,并将其保留在会话中

在操作中,您可以通过以下方式检索用户对象:

$this->getUser()
在视图中,它已加载到变量中:

$sf_user

Symfony不鼓励将对象保存到会话中,例如,请参见此处:


。。。但您可以保存用户ID和其他在查询中保存的位。这实际上取决于您需要在所有这些页面上执行的操作是否需要整个用户对象。如果是的话,
$this->getUser()->getGuardUser()
就是您最终将在任何地方使用的对象。

我不是说在会话中保存用户对象,我的意思是我需要在请求期间、执行期间保存用户对象。例如,其中一个组件每次从数据库请求时都会加载用户。在操作中,如果用户已加载到组件中,我不想再次获取该用户,因此我需要使组件变量可用于操作。这有意义吗?你确定每次都会加载吗?它应该只为数据库创建一个实际的查询,即使是在组件内。