如何在tpl文件中使用php代码在smarty中进行协作?

时间:2011-09-19 12:29:05

标签: php smarty task-parallel-library

我需要在smartl中使用tpl文件中的php代码。我用了{php} echo "hello"; {/php} 但我需要在php代码中使用一个smarty变量。

例如,我需要在index.tpl文件中的以下php代码中使用以下变量{$myprojects[project].ID}

{php}
    $qry = "select name from tasklist WHERE project = ".{/php} { {php}$myprojects[project].ID {/php} } {php}." ";
    echo $qry;
{/php}

2 个答案:

答案 0 :(得分:1)

每个模板中都有一个$this Smarty对象:

$this->get_template_vars('myprojects')

答案 1 :(得分:-1)

你必须像这样编写代码

{php}
    $var = $this->get_template_vars('myprojects');
    // if it is not an array you can use directly and if it is an array use as below.
        $qry = "select name from tasklist WHERE project = ".$var['key'];
        echo $qry;
    {/php}

为了您的知识和更好的编码帮助,请参阅下文

最好能够在php文件中创建一个类并调用类的对象,并开发一个函数来获得所需的输出。

    $objMyF = new my_functions();
    $smarty->assign('objMyF',$objMyF);

    //and in your tpl file you can call its functions by
    {$objMyF->function_name($var)}