2012-04-05 47 views
18

Tôi muốn gán giá trị thu được từ việc nối hai biến này với một chuỗi.Ghép nối trong smarty

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

Vui lòng cho tôi biết cách chúng tôi có thể thực hiện điều này một cách thông minh.

Trả lời

31

Một o f những nên làm việc:

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

Hoặc

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

Tôi không chắc chắn nếu $ hình ảnh [i] .image sẽ được phân tích một cách chính xác, bạn có thể phải {gán} nó để biến khác đầu tiên

+0

đầu tiên hoạt động hoàn hảo – Shwet

+1

Thứ hai là cách dễ đọc và hiệu quả hơn. 't) – user1429980

+0

Tôi nghĩ bạn không cần phải gọi mèo nhiều lần hơn, Đơn giản $ var | cat:' str1 ':' str2 ': ....... làm việc cho tôi :) –

6

Bạn đã sử dụng assign đúng cách.

Một ví dụ đơn giản có thể trông như thế này:

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> 

... sẽ dẫn đến kết quả:

Hello - and - World 
+0

này thực sự hoạt động, nhưng mà là nó ghi Oo? –

+0

@ jave.web Hãy xem [ví dụ biến ở đây trong hướng dẫn] (https://www.smarty.net/docs/en/language.syntax.variables.tpl), chúng bao gồm hầu hết các trường hợp sử dụng. – Bjoern

+0

mà hầu như không hiển thị {} được sử dụng để giải quyết sự mơ hồ và ghép trong việc đặt tên var/index, không có trường hợp này ... x) –

0

như một biểu thức sẽ làm các trick:

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