无脂肪框架-串联模板字符串

时间:2019-10-21 17:40:58

标签: php twig concatenation slim fat-free-framework

我有一个从Slim v3移植到Fat Free Framework的Web应用程序。逻辑部分很简单。我的问题是将某些Twig视图模板转换为F3模板。具体地说,我在构建连接字符串以填充Materialize类字段时遇到困难。

例如,假设我的联系表单验证传回了 message_err ,其中指出:“名称字段必须至少包含3个字符。”

利用Twig的模板引擎的Slim应用程序将检查 data.name_err 是否为空,如果不是,它将通过连接'data-name'创建一个新的 messageName 。 err =“'和data.name_err,然后将其用于以Materialize形式显示错误状态。这是一个代码段:

<div class="input-field">
    <label for="name">Name:</label>
    {% if data.name_err %}
        {%  set messageName = 'data-error="'~data.name_err~'"' %}
    {% endif %}
    some more code here...
</div>

我已经尝试使用F3的内置模板引擎执行类似的操作,但是我尝试过的所有操作都会引发错误。这里有一些尝试:

<set msg="data-error=&#34 {{ @data.name_err }} "></set>

和:

<set msg="{{ data-error=&#34 @data.name_err &#34}}"></set>

由于似乎没有办法转义字符串中的字符,所以这就是为什么我尝试使用ASCII码作为引号的原因。我也用等号进行了尝试,但是仍然出现错误。

如果有人有任何想法,我将不胜感激。否则,我将不得不深入研究一些核心逻辑。

2 个答案:

答案 0 :(得分:0)

请尝试

<set msg="{{ 'data-error=&#34'.@data.name_err.'&#34'}}"></set>

答案 1 :(得分:0)

在F3中,您可以使用{~ <code> ~}来执行php表达式而不回显结果。

{~ @msg = "data-error=\"@data.name_err\""  ~}