2011-04-09 93 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