2012-04-05 14 views
18

Desidero assegnare il valore ottenuto dalla concatenazione di queste due variabili con una stringa.Concatenazione in smarty

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

Per favore fatemi sapere come possiamo farlo in smarty.

risposta

31

Uno o f questi dovrebbero funzionare:

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

O

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

Non sono sicuro se i $ immagini [i] .image verrà analizzata correttamente, potrebbe essere necessario assegnare {} ad un'altra variabile prima

+0

primo uno ha funzionato perfettamente – Shwet

+1

Secondo uno è molto più facile da leggere e lavorato (prima uno non ha 't) – user1429980

+0

Penso che tu non abbia bisogno di chiamare cat più volte, semplice $ var | cat:' str1 ':' str2 ': ....... funziona per me :) –

6

Hai usato correttamente assign.

Un esempio semplificato potrebbe assomigliare a questo:

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> 

... si tradurrà in uscita:

Hello - and - World 
+0

Questo funziona davvero, ma dove è documentata Oo? –

+0

@ jave.web Dai un'occhiata agli [esempi di variabili qui nel manuale] (https://www.smarty.net/docs/en/language.syntax.variables.tpl), che trattano la maggior parte dei casi d'uso. – Bjoern

+0

bene che mostra difficilmente {} sono usati per indirizzare ambiguità e concatenare in nomi var/index, non è questo il caso ... x) –

0

tale espressione farà il trucco:

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