2011-07-01 39 views
0

我正在使用CakePHP 1.3和一个包含用户有权访问管理的组织下拉列表的布局,所以我试图用包含用户标识的组织来填充该下拉列表登录,但我想在用户看到任何东西之前填充它,以便他们可以在标题中使用它。下拉菜单需要在登录后出现在每个页面上。我尝试添加查询以将这些组织拖入appcontroller中,但是在过滤器之前尚未使用userid。我该在哪里或如何做到这一点?它应该在会议中还是有更好的结构使用?元件?填充整个下拉网站的最佳方式是

回答

0

在我的应用程序中使用beforeRender中的user_id是没有问题的(如果您使用的是Auth组件)。您可以使用$this->Auth->user('id')

我会这样做:如果用户登录,请检查AppController。如果他是,从数据库(或无论您获取信息)中提取想要的信息并将其存储在名为$dropdown例如。
如果用户未登录,$dropdown将为false
你现在做这个变量提供给视图与$this->set(compact('dropdown'))

现在,在您的布局(这是很重要的,你有它的每一页上),你可以很容易地做一个检查,如果$dropdown是虚假或不。如果不是,您可以使用变量并向用户显示想要的下拉菜单。

+1

但是使用beforeRender很重要。 BeforeFilter会是错误的,因为在所有情况下都不会启动/触发。然而,beforeRender是。 – mark

相关问题