【发布时间】:2013-11-14 22:23:25
【问题描述】:
是否可以将样式表从控制器传递给视图?
我有一个master.layout 文件。此主布局用于网站上的每个页面。在网站上,用户可以更改其用户配置文件的颜色和属性,因此在配置文件页面上,我需要传入自定义用户样式表或自定义样式规则。
我找到的唯一解决方案是在视图中包含 if 语句,如果该页面是个人资料页面,则检查是否定义了 $style,如果是则包含它。但这种方法似乎很笨拙。
是否可以从控制器本身定义布局并传入脚本或样式规则?
编辑:
样式规则存储在数据库中的列中,例如profile.background_color 和profile.heading_color。然后控制器将它们构造成样式表并缓存它,或者将样式直接包含在配置文件视图上的<style> 标记中。我还没有决定采用哪种方法,但两种方法都可以。
【问题讨论】:
-
这取决于您存储 css 的方式。在某些情况下,调整客户端就可以了。或者您可以将样式表作为参数传递给视图。您需要提供更多信息。
-
@itachi 更新了问题以包含所要求的详细信息。
-
如果我是你,我会把所有的逻辑从控制器和视图中拿出来,放在一个门面。外观将在数据库中搜索自定义样式规则。如果找到,抓住它,否则通过默认规则。然后在外观中使用另一个方法来输出它。它将保持代码干净,不会在视图或控制器中混乱。
-
我没听说过 Facade,得研究一下。