Weiß jemand, wie man Zeichenketten in Twig verkettet? Ich möchte etwas tun wie:
{{ concat('http://', app.request.host) }}
Weiß jemand, wie man Zeichenketten in Twig verkettet? Ich möchte etwas tun wie:
{{ concat('http://', app.request.host) }}
Sie können verwenden ~
comme {{ foo ~ 'inline string' ~ bar.fieldName }}
Sie können aber auch Ihre eigenen concat
Funktion, um sie wie in Ihrer Frage zu verwenden:
{{ concat('http://', app.request.host) }}
:
で src/AppBundle/Twig/AppExtension.php
<?php
namespace AppBundle\Twig;
class AppExtension extends \Twig_Extension
{
/**
* {@inheritdoc}
*/
public function getFunctions()
{
return [
new \Twig_SimpleFunction('concat', [$this, 'concat'], ['is_safe' => ['html']]),
];
}
public function concat()
{
return implode('', func_get_args())
}
/**
* {@inheritdoc}
*/
public function getName()
{
return 'app_extension';
}
}
で app/config/services.yml
:
services:
app.twig_extension:
class: AppBundle\Twig\AppExtension
public: false
tags:
- { name: twig.extension }
format()
Filterformat
Filter, der aussagekräftiger istformat
Filterformat
Filter funktioniert wie der sprintf
Funktion in anderen Programmiersprachenformat
Filter kann bei komplexeren Zeichenketten weniger umständlich sein als der ~-Operatorexample00 string concat bare
{{ "%s%s%s!"|format('alpha','bravo','charlie') }}
--- result --
alphabravocharlie!
example01 string concat mit dazwischenliegendem Text
{{ "The %s in %s falls mainly on the %s!"|format('alpha','bravo','charlie') }}
--- result --
The alpha in bravo falls mainly on the charlie!
folgt der gleichen Syntax wie sprintf
in anderen Sprachen
{{ "The %04d in %04d falls mainly on the %s!"|format(2,3,'tree') }}
--- result --
The 0002 in 0003 falls mainly on the tree!
Um Zeichenketten, Variablen und Übersetzungen zu mischen, gehe ich einfach wie folgt vor:
{% set add_link = '
<a class="btn btn-xs btn-icon-only"
title="' ~ 'string.to_be_translated'|trans ~ '"
href="' ~ path('acme_myBundle_link',{'link':link.id}) ~ '">
</a>
' %}
Obwohl alles durcheinander ist, funktioniert es hervorragend.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.