Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php smarty变量将不会输出_Php_Html_Pagination_Smarty - Fatal编程技术网

Php smarty变量将不会输出

Php smarty变量将不会输出,php,html,pagination,smarty,Php,Html,Pagination,Smarty,我正在尝试使用来自的paginator类 但由于某些原因,我无法在模板中的smarty变量中输出分页链接 我试过这个: function listadverts($where = null, $orderby = null, $limit = null) { $pages = new Paginator; $pages->items_total = $this->countadverts($where); $page

我正在尝试使用来自的paginator类 但由于某些原因,我无法在模板中的smarty变量中输出分页链接

我试过这个:

function listadverts($where = null, $orderby = null, $limit = null) {         

        $pages = new Paginator;
        $pages->items_total = $this->countadverts($where);
        $pages->mid_range = 9;
        $pages->paginate();

        $row = $this->db->dbh->query('SELECT ad.*, (SELECT img.image FROM '.$this->config->db_prefix.'_images AS img WHERE img.aid = ad.aid LIMIT 1) AS img FROM '.$this->config->db_prefix.'_adverts ad WHERE (ad.approved = 1) '. $where .' ORDER BY '.$orderby.' cr_date DESC '. $pages->limit .'');

        $smarty = new Smarty();

        $smarty->assign('paginate', $pages->display_pages());
        return $row;
    }
在我的模板中,我有

{$paginate}
功能

$pages->display_pages()
返回
$this->return

其中$this->returns包含此HTML

$this->return .= ($i == $this->current_page) ? "<a class=\"current\" href=\"#\">$i</a> ":"<a class=\"paginate\" href=\"$target?page=$i&ipp=$this->items_per_page\">$i</a> ";
解决方案:

return array(0 => $row, 1 => $pages->display_pages());

$res = $adverts->listadverts();    
$app->view()->setData('adverts', $res[0]);
$app->view()->setData('paginate', $res[1]);

代码示例建议$smarty应该只存在于函数内部。试试全球$smarty;也可在外部访问,或在功能外部将数据插入$smarty

function listadverts($where = null, $orderby = null, $limit = null) { 

    $pages = new Paginator;
    $pages->items_total = $this->countadverts($where);
    $pages->mid_range = 9;
    $pages->paginate();

    $row = $this->db->dbh->query('SELECT ad.*, (SELECT img.image FROM '.$this->config->db_prefix.'_images AS img WHERE img.aid = ad.aid LIMIT 1) AS img FROM '.$this->config->db_prefix.'_adverts ad WHERE (ad.approved = 1) '. $where .' ORDER BY '.$orderby.' cr_date DESC '. $pages->limit .'');

    return $pages->display_pages();
}

$smarty = new Smarty();
$smarty->assign('paginate', listadverts(... ));

代码示例建议$smarty应该只存在于函数内部。试试全球$smarty;也可在外部访问,或在功能外部将数据插入$smarty

function listadverts($where = null, $orderby = null, $limit = null) { 

    $pages = new Paginator;
    $pages->items_total = $this->countadverts($where);
    $pages->mid_range = 9;
    $pages->paginate();

    $row = $this->db->dbh->query('SELECT ad.*, (SELECT img.image FROM '.$this->config->db_prefix.'_images AS img WHERE img.aid = ad.aid LIMIT 1) AS img FROM '.$this->config->db_prefix.'_adverts ad WHERE (ad.approved = 1) '. $where .' ORDER BY '.$orderby.' cr_date DESC '. $pages->limit .'');

    return $pages->display_pages();
}

$smarty = new Smarty();
$smarty->assign('paginate', listadverts(... ));

SQL查询用于什么?您将其分配给$row,但除了返回它之外,您似乎什么都不做。如果这段代码不需要知道$row,那么它应该在一个单独的函数中。此外,如果可以避免的话,字符串压缩也不被认为是构建查询的明智方法,尤其是在不使用转义函数以确保不会遭受SQL注入的情况下。代码示例建议$smarty应该只存在于函数中。尝试
global$smarty使在外部也可访问,或将数据插入到函数外部的$smarty中。。。未返回$pages对象。。。我的问题更新显示了我的解决方案。@Waygood-你会给出答案吗?您的评论让我看到了我在函数中返回的内容SQL查询的目的是什么?您将其分配给$row,但除了返回它之外,您似乎什么都不做。如果这段代码不需要知道$row,那么它应该在一个单独的函数中。此外,如果可以避免的话,字符串压缩也不被认为是构建查询的明智方法,尤其是在不使用转义函数以确保不会遭受SQL注入的情况下。代码示例建议$smarty应该只存在于函数中。尝试
global$smarty使在外部也可访问,或将数据插入到函数外部的$smarty中。。。未返回$pages对象。。。我的问题更新显示了我的解决方案。@Waygood-你会给出答案吗?你的评论让我看到了我在函数中返回的内容