2011-04-09 94 views
1
{assign var=tmp_url value=setURI(array('page' => 1))} 

看來array()不能在smarty中使用嗎?如何在smarty中使用這樣的語句?

我嘗試了各種方法,但都沒有成功。

任何人都知道的訣竅?

+0

這與您的問題無關,但您可能希望有一天放棄Smarty並使用PHP模板。你不會遇到這樣的問題。 – 2011-04-09 15:01:13

+1

你能給我們更多關於你想要做什麼的信息嗎?你爲什麼試圖在smarty中定義一個數組來傳遞迴存儲爲變量的php函數?我真的認爲你的任何事情都是以你錯誤的方式執行 – mcgrailm 2011-04-09 15:12:07

+0

@mcgrailm,因爲'setURI()'需要一個數組作爲參數。我沒有做錯,相信我在這... – 2011-04-09 15:15:49

回答

0

試對此,

在PHP文件,編寫一個函數

<?php 
function getSetUri(){ 
    return setURI(array('page' => 1)); 
} 
?> 

在模板文件,只需調用函數

{assign var=tmp_url value=getSetUri()} 
0

據我可以告訴有你可以在陣列分配中的Smarty設置一個數組中沒有原生的辦法智者templete在你的PHP,並稱之爲頁面

然後accesss它在智者這樣

{assign var=tmp_url value=setURI($page[1])} 

或者您可以使用插件。此thread中還有其他一些選項,但我不確定最適合您的是什麼。你可能需要找到某種方式做你想要的東西或修改你的函數的另一種方式,因此可以接受字符串

0

你可以使用{php}標籤在那裏分配變量值:

<h1>Foo!{$var}</h1> 
{php} 
$this->assign('tmp_url', setURI($page[1])); 
{/php} 
<a href={$tmp_url}">bar</a> 
+0

我需要在模板 – 2011-04-09 15:33:37

+0

* *在模板中 – cweiske 2011-04-09 15:36:25

+0

如果你嘗試,'$ this-> assign'將會失敗 – 2011-04-09 18:31:04