0

当在一个网站上创建一个页面时,应该根据谁在查看它来显示不同的信息,最优雅的设计是什么?我想出了几个可能性:

  1. 将所有数据传递给模板,以及一个说明用户拥有何种权限的变量,并让模板根据此选择显示或不显示。

  2. 根据访问级别拥有不同版本的模板。

  3. 根据访问级别拥有不同版本的视图。

举个具体的例子,假设您有一个包含用户个人资料的页面。如果用户已登录,他们应该会看到他们的所有信息。如果其他用户登录,他们应该只看到该用户公开的内容。如果管理员登录,他们应该会看到所有信息和一组管理操作按钮。

4

2 回答 2

2

版本 1 很糟糕。它将访问逻辑放置在模板中,可能(意外地)公开您可能不想公开的内容。

您绝对不应该将所有内容都传递给模板,并通过另一个变量来确定显示。

以某种方式在视图中(向模板显示单个正确对象)或模型中进行过滤。

虽然并不总是 100% 可能,但应该努力将业务逻辑排除在模板之外。

如果您需要根据用户的角色使用截然不同的模板,那么我会为每个角色使用单独的模板。

于 2013-02-25T17:53:34.693 回答
0

版本 1 是您最好的选择。我会通过上下文处理器将您需要的值注入上下文中。

于 2013-02-25T16:16:35.457 回答