我想你可以使用一个组件的部分insted。在这种情况下,你有一个特定用户对象的showAction,并且你希望使用一个stadistics模板片段在用户登录时在你的所有应用程序中显示。
首先,创建一个executeShow和ashowSuccess .PHP模板,可能看起来像:
行动:
public function executeShow(sfWebRequest $request)
{//the session loggedin user, suppose he's logged in
$this->user = $this->getUser();
}
模板:
[..blablabla...htmlcode]
<?php echo $user ?>
<?php include_partial('module/partial_name',array('user',$user))?>
[..blablabla...morehtmlcode]
现在,部分称为partial_名称位于“模块”模块的模板forlder中,将设置$ user变量,这是include_partial的第二个参数,用于告诉:“定义一个名为user的变量,其值为$ user”。
通过这种方式,您可以共享对象的同一实例,而不必重新搜索数据库上的对象。
我知道你在暗示什么 - 它工作正常....但我有多个模板 - 这意味着添加相同的行到所有的模板 - 我想要的是添加到布局,只调用一次。我实际上通过使用我自己的类来完成我想要的任务,并且在那里有一个静态属性来存储对象 - 现在它可以在任何地方使用....我只希望它有一件好事 - 当然可以工作并且速度很快(并且节省额外的数据库查询) - 感谢您的答案 – ManseUK 2011-02-17 14:38:10