我需要一些帮助。 想象一下,在数据库中为每个用户都存储了背景颜色。 每次用户登录时,首先为某个文件夹中的该用户生成名为id of user的css文件,并包含在html模板中。
我需要帮助才能了解如何生成css文件?
感谢。
答案 0 :(得分:0)
我使用FOSUserBundle进行Symfony,您可以使用app.user
将用户插入到twig文件中。
如果您打开MySQL控制台并输入describe fos_user;
,则会看到您可以在Twig文件中使用的所有字段。因此,在您的表格中,您可以为每个FOS用户存储color
然后在Twig你可以使用这样的东西:
{% if app.user %}
{% set backColor = app.user.color %}
{% else %}
{% set backColor = 'none' %}
{% endif %}
...
<body style="background-color:{{ backColor }};">
你明白了...... 您可能想要找到一种方法来使用Symfony表单存储FOS用户的颜色首选项。然后在数据库中存储首选项。如果遇到困难,你可以提出一个单独的问题 - 这应该很容易。
答案 1 :(得分:-1)
非常简单......
您需要为所需文件夹中的每个用户生成一个twig文件,并在其中放置“内联”CSS。
{% block css %}
<style>
.class {
parameter: {{ entity.value }};
}
</style>
{% endblock css %}
要生成文件,请创建一个服务,您将在加载页面时调用该服务。 它必须首先检查文件是否存在,如果存在,它将从中读取(不向DB查询),如果不存在,它将生成文件,并从DB读取需要的数据。
在本页面上查看我和Gopal的回答,了解如何提供服务How to use session in Symfony
你可以根据自己的需要使用它......;)
另请查看Symfony Filesystem Component
file_put_contents()
应该可以帮助您编写文件的内容......;)