CakePHP导航栏逻辑

时间:2014-02-09 22:53:25

标签: cakephp cakephp-2.0

我的应用程序中的导航栏将包含User信息(名称,个人资料图片)和一些相关数据。由于导航栏将出现在整个应用程序中,我将我的逻辑放在AppController::beforeRender()中,以便将数据传递给View(在本例中为Element nav_bar)。

  1. 这是实现检索用户信息和相关数据的逻辑的正确位置吗?
  2. 以下哪项是加载User模型数据的正确方法。

    public function beforeRender() {
        $this->loadModel('User');  // this one
        $this->User->find(...                    
    
        ClassRegistry::init('User')->find(... // Or this one?
    

2 个答案:

答案 0 :(得分:2)

我会在会话中保存用户信息,否则您将在每个请求中访问数据库。

所以,你想做的是:在你的login()函数中,你获得用户信息并将其保存在Session中。然后,在您的元素中,您只需回显您想要的会话内容。

答案 1 :(得分:-1)

在您的视图中,使用AuthComponent类访问用户信息,例如:

拥有用户ID:$use_id = AuthComponent::user('id');

获取用户的所有信息:$user = AuthComponent::user();