Symfony生成css

时间:2016-12-20 21:31:38

标签: symfony

我需要一些帮助。 想象一下,在数据库中为每个用户都存储了背景颜色。 每次用户登录时,首先为某个文件夹中的该用户生成名为id of user的css文件,并包含在html模板中。

我需要帮助才能了解如何生成css文件?

感谢。

2 个答案:

答案 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()应该可以帮助您编写文件的内容......;)