2012-11-20 14 views
10

Wie würden Sie mehr Daten an dieselbe Variable in Zweig anhängen? Zum Beispiel ist es das, was ich versuche, in Zweig zu tun:Zweig - Mehr Daten an dieselbe Variable anhängen

var data = "foo"; 
data += 'bar'; 

Ich habe herausgefunden, dass ~ Strings zusammen in Twig anhängt. Wenn ich versuche, {% set data ~ 'foo' %} bekomme ich einen Fehler in Twig.

Antwort

20

Der Operator ~ führt keine Zuweisung durch, was wahrscheinlich der Grund für den Fehler ist.

Stattdessen müssen Sie die beigefügten Zeichenfolge wieder in der Variablen zugewiesen werden:

{% set data = data ~ 'foo' %} 

Siehe auch: How to combine two string in twig?

+0

Haha, was für eine dumme Lösung, aber es funktioniert. Vielen Dank :) – Jon

0

angezeigte dynamisch Zweig

{% for Resp in test.TestRespuestasA %}   
    {% set name = "preg_A_" ~ Resp.id %} 
    {% set name_aux = "preg_A_comentario" ~ Resp.id %} 
    <li>{{ form_row(attribute(form, name)) }}</li> 
{% endfor %} 
0

Sie können auch eine benutzerdefinierte definieren filtere wie Liquid's |append Filter in deiner Twig-Instanz, die das Gleiche macht.

$loader = new Twig_Loader_Filesystem('./path/to/views/dir'); 
$twig = new Twig_Environment($loader); 

... 
... 

$twig->addFilter(new Twig_SimpleFilter('append', function($val, $append) { 
    return $val . $append; 
})); 

im folgenden Markup Resultierende:

{% set pants = 'I\'m wearing stretchy pants!' %} 
{% set part2 = ' and they\'re friggin\' comfy!' %} 
{% set pants = pants|append(part2) %} 

{{ pants }} 

{# result: I'm wearing stretchy pants! and they're friggin' comfy! #} 

IMHO finde ich die obige Probe intuitiver als die ~ combinator, vor allem, wenn auf einer gemeinsamen Code-Basis zu arbeiten, wo Menschen neu in die Syntax ein wenig bekommen könnte gemischt.