无法使用Smarty

时间:2015-12-21 17:36:18

标签: php smarty

我已经创建了一个运行SQL查询的函数,输出数据就好了,问题是我现在无法做任何事情,因为我无法使输出到模板工作。

PHP代码:

 function getCategories() {
    try {
        foreach($this->pdo->query("SELECT categories.cat_id, categories.cat_name, categories.cat_description FROM categories") as $row) {
            $rows[] = $row;
        }
    } catch(PDOException $e) {
        print "Error!:" . $e->getMessage();
        return false;
    }
    return $rows;
    $smarty = new Smarty();
    $smarty->assign('categories', $rows);
}

这只是简单地回复:

enter image description here

return $rows;替换return $smarty->assign('categories', $rows);只会呈现空白页。

我在模板中使用了这个:{$categories.cat_name}

任何人都可以帮我解决这个问题吗?

我试图使用Smarty重写一个易受攻击的糟糕论坛脚本,因此它是一个值得尝试开发脚本的基础。它实际上只是类别,主题和登录/注册系统,我试图用Smarty重写。

1 个答案:

答案 0 :(得分:0)

问题在于您创建了一个新的智能对象,为其指定一个变量,但不使用它来显示您的模板 - 因此该对象会丢失。

我建议将Smarty对象传递给你的函数:

function getCategories(&$smarty) {
    $rows = array();
    if($result = $this->pdo->query("SELECT categories.cat_id, categories.cat_name, categories.cat_description FROM categories")) {
        $rows = $result->fetchAll();
    }
    $smarty->assign('categories', $rows);
}

这样,对象引用将被传递给函数 - 您将能够分配您想要的任何变量而无需返回它。请确保您发送用于渲染模板的Smarty对象。