将Smarty变量传递给对象参数

时间:2014-03-30 09:44:00

标签: php variables smarty smarty3

我正在使用Smarty引擎,我想将Smarty变量传递给对象参数。

我的 index.php

<?php 
$smarty = new Smarty;
$smarty->registerObject('articles',$articles);

if (isset($_GET['task'])){
    $smarty->assign('articleid',$_GET['id']);
}

我的编辑文章课程:

   public function editArticle($id) {

       // database connection
       $conn = parent::Db();
       $q = $conn->prepare('SELECT * FROM articles WHERE id = :id ');
       $q->execute(array(':id'=> $id ));
       $results = $q->fetchAll(PDO::FETCH_ASSOC); 
       ....
   }

我希望 id 用于我的函数和我的tpl:

{if isset($smarty.get.task) && $smarty.get.task eq articleedit} 
<div class="box">
    <div class="box-header"> <h3 class="box-title">Bordered Table</h3></div>
    <div class="box-body">

            {articles->editArticle p1=$articleid }

    </div>
</div>
{/if}

如何将参数传递给我的对象?我阅读了Smarty文档并提出了这一行:

{articles->editArticle p1=$articleid }

但对我不起作用。

1 个答案:

答案 0 :(得分:0)

在PHP中你应该这样做:

$smarty->registerObject('articles',$articles);

在Smarty你应该这样做:

{articles->editArticle($articleId)} 

如果它不起作用,您应该添加更多代码,如何将变量分配给Smarty。