2012-04-05 20 views
18

Quiero asignar el valor obtenido de la concatenación de estas dos variables con una cadena.Concatenación en smarty

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

Háganme saber cómo podemos hacer esto en smarty.

Respuesta

31

Uno o f éstos deben trabajar:

{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`"} 

No estoy seguro de si las imágenes $ [i] .Imagen será analizada correctamente, puede que tenga que asignar} {a otra variable de primera

+0

el primero funcionó perfectamente – Shwet

+1

El segundo es mucho más fácil de leer y de trabajar (el primero no 't) – user1429980

+0

Creo que no es necesario llamar al gato más veces, Simple $ var | cat:' str1 ':' str2 ': ....... funciona para mí :) –

6

Has usado assign correctamente.

Un ejemplo simplificado podría tener este aspecto:

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> 

... dará lugar a la salida:

Hello - and - World 
+0

Esto funciona realmente, pero donde se documenta Oo? –

+0

@ jave.web Eche un vistazo a los [ejemplos de variables aquí en el manual] (https://www.smarty.net/docs/en/language.syntax.variables.tpl), que cubren la mayoría de los casos de uso. – Bjoern

+0

bien que apenas muestra {} se usan para abordar ambigüedades y para concatenar en var/index naming, no hay este caso ... x) –

0

como una expresión hará el truco:

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