2012-04-05 14 views
18

Chcę przypisać wartość uzyskaną z konkatenacji tych dwóch zmiennych za pomocą ciągu znaków.Konkatenacja w smarty

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

Proszę dać mi znać, jak możemy to zrobić w smarty.

Odpowiedz

31

Jedna o f to powinno działać:

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

Albo

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

Nie jestem pewien, czy $ zdjęć [I] .image będzie analizowany poprawnie, być może trzeba będzie przypisać {} to do innej zmiennej pierwszy

+0

Pierwszy działał idealnie – Shwet

+1

Drugi jest łatwiejszy do odczytania i działa (pierwszy nie 't) – user1429980

+0

Myślę, że nie musisz dzwonić do kota więcej razy, Simple $ var | cat:' str1 ':' str2 ': ....... działa dla mnie :) –

6

Użyłeś poprawnie .

Uproszczony przykład mógłby wyglądać następująco:

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> 

... doprowadzi do wyjścia:

Hello - and - World 
+0

to faktycznie działa, ale gdzie jest udokumentowany Oo? –

+0

@ jave.web Zapoznaj się z [zmiennymi przykładami tutaj w podręczniku] (https://www.smarty.net/docs/en/language.syntax.variables.tpl), obejmują one większość przypadków użycia. – Bjoern

+0

dobrze, że prawie się nie pokazuje {} są używane do adresowania niejednoznaczności i łączenia się w nazwach zmiennych/indeksu, nie ma tego przypadku ... x) –

0

takim wyrazem rade:

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