首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >树枝生枝(2)

树枝生枝(2)
EN

Stack Overflow用户
提问于 2021-11-23 14:53:16
回答 1查看 1K关注 0票数 0

我有一个与set-default-raw-filter-in-twigtwig-raw-with-twig相似的问题,但方式不同。我使用我的数据库中的两个表。

第一个,edition包含DateTime格式的日期,作为我们竞争的最后期限。在这里,属性dateouverturesite具有值2021-05-08 00:00:00

第二个例子,odpf_article包含要在我的渲染中使用的文本。那些文本是用HTML标记格式化的。

在其中一篇课文中,我希望从第一张桌子上学习日期。我试着把这些引用作为Twig变量: Twig中的Twig!

我在Symfony控制器中的作用:

代码语言:javascript
复制
    public function concours(Request $request,$choix): \Symfony\Component\HttpFoundation\Response
        {
            $edition = $this->session->get('edition');
            $repo2=$this->getDoctrine()->getRepository(OdpfArticle::class);
            $article=$repo2->findOneBy(['choix'=>$choix]);
            $texte=$article->getTexte();
            $tab=[ 'choix'=>$choix,
                  'texte'=>$texte,
                  'edition'=>$edition ];
            return $this->render('core/odpf-concours.html.twig', $tab);
        }

texte属性中的一些行

代码语言:javascript
复制
     <p><strong>PHASE D’INSCRIPTION</strong></p>
     <ul>  
       <li> ouverture des inscriptions :{{app.session.get('edition').date_ouverture_site}} </li> 
       <li>{{app.session.get('edition').date_cloture_inscriptions}}
     <span style="color: red;"><strong>(heure de Paris)</strong></span>
     : clôture des inscriptions
       </li> 
    </ul>

渲染的线条:

代码语言:javascript
复制
                <div class ="contenu">
                    {{ texte|escape('html') }}
                </div>

或者使用原始过滤器:

代码语言:javascript
复制
                <div class ="contenu">
                    {{ texte|raw }}
                </div>

最后结果(两个过滤器的结果相同:**PHASE D’INSCRIPTION** ouverture des inscriptions :{{ app.session.get('edition').dateouverturesite }} **(heure de Paris)** )

我的问题是:我如何写我的Twig变量?

我有十个不同的日期要显示,在相同的texte,和另一个过滤器申请只显示月份和日期.

我对DarkBee提供的链接的回答是:

我更改了我的{{ include(template_from_string(texte)) }}

  • The行,:Object of class DateTime could not be converted to string

  • So,是:Object of class DateTime could not be converted to string

  • So,,我写了模板行{{date(app.session.get('edition').dateouverturesite)}}

  • And,我有相同的Exception...
EN

回答 1

Stack Overflow用户

发布于 2021-11-23 15:51:50

您必须使用"string" ~ var ~ "more string"将变量与字符串连接起来。

代码语言:javascript
复制
{% set something = 'stuff' %}
{% set texte = '<ul>
      <li> ouverture des inscriptions :' ~ something ~ ' 
      </li>
    </ul>' %}
    
{{ texte|raw }}

结果:

代码语言:javascript
复制
<ul>
    <li> ouverture des inscriptions :stuff 
    </li>
</ul>

但是,我怀疑您真正想要做的是使用一个模板片段,特别是当插入的值可能发生变化时。

代码语言:javascript
复制
{# src: _fragment.html.twig #}
    <ul>
      <li> ouverture des inscriptions :{{ app.session.get('edition').date_ouverture_site }}  
      </li>
    </ul>

然后随心所欲地把它包含在任何地方。

代码语言:javascript
复制
{# src: main.html.twig #}

<div>
  <h1>The list:</h1>
  {{ include('_fragment.html.twig') }}
</div>

<div>
  <h4>That list again:</h4>
  {{ include('_fragment.html.twig') }}
</div>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70083009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档