2012-04-05 5 views
18

Ich möchte den Wert aus der Verkettung dieser beiden Variablen mit einem String erhalten.Verkettung in Smarty

{assign var="url" value="{$WS_PATH}aircraft_images/{$images[i].image}"} 

Bitte lassen Sie mich wissen, wie können wir dies in Smarty tun.

Antwort

31

Ein o f diese funktionieren sollte:

{assign var="url" value=$WS_PATH|cat:"aircraft_images/"|cat:$images[i].image} 

Oder

{assign var="url" value="`$WS_PATH`aircraft_images/`$images[i].image`"} 

Ich bin nicht sicher, ob die $ Bilder [i] .image korrekt analysiert werden, können Sie haben {zuweisen} es auf eine andere Variable zuerst

+0

erste funktionierte perfekt – Shwet

+1

Zweite ist viel einfacher zu lesen und arbeitete (erste didn 't) – user1429980

+0

Ich denke, du musst nicht mehr mal Katze rufen, Simple $ var | cat:' str1 ':' str2 ': ....... funktioniert für mich :) –

6

Sie haben assign ordnungsgemäß verwendet.

Ein vereinfachtes Beispiel könnte wie folgt aussehen:

yourphpfile.php:

$tpl = new Smarty; 
$tpl->assign('var1','Hello'); 
$tpl->assign('var2','World'); 
$tpl->display('yourtemplate.tpl'); 

yourtemplate.tpl:

... 
<body> 
{assign var="url" value="{$var1} - and - {$var2}"} 
{$url} 
</body> 

... zum Ausgang führen:

Hello - and - World 
+0

Dies tatsächlich funktioniert, aber wo ist es dokumentiert Oo? –

+0

@ jave.web Sehen Sie sich die [Variablenbeispiele hier im Handbuch] (https://www.smarty.net/docs/en/language.syntax.variables.tpl) an, sie decken die meisten Anwendungsfälle ab. – Bjoern

+0

gut, dass kaum zeigt {} werden verwendet, um Mehrdeutigkeiten zu adressieren und in var/index Benennung zu verketten, gibt es nicht diesen Fall ... x) –

0

ein solcher Ausdruck den Trick:

{$product1_photo = "{$smarty.const.IMG_URL}/{$pInfo.PhotoName}"}