0

这很容易理解

图像类

<?php
class Image extends Zend_Db_Table_Abstract {

    protected $_name = 'images';

    public function getList() {
        return $this->fetchAll();
    }
}?>

我的 PHP 代码

<?php

require 'config.php';

$imgTable = new Image();  // Create Object

$imgList = $imgTable->getList(); // fetch Data

$template = new Template('portfolio'); // Initialize Template and tell which template to pick

$template->imgList = $imgList; // set template variable

$template->render(); // Generate Template output

?>

我可以使用 $this 访问模板内的模板变量

下面的代码来自模板内部

$xback = 0;
foreach ($this->imgList as $images) {
    echo 'imageArray[' . $xback . '] = "' . $images['sef'] . '";';
    $xback++;
}
?>
.......
<?php


foreach ($this->imgList as $images) {

?>
    <div class="portfolio_item">
    <img src="<?php echo PATH_WEB . $images['image_thumb'] ?>" height="146" width="209" />
    <div class="title"><?php echo $images['image_title'] ?></div>
    <div class="right link">
        <a href="javascript:;" onclick="showItemDetails('<?php echo $images['sef'] ?>')">View Details</a>
    </div>
    </div>
<?php
}

?>

上面的代码工作正常,但在几行下面,我必须再次迭代相同的数据,不输出任何东西。如果我评论第一个,第二个开始工作。

第一个是创建 JS 数组并在 head 部分,第二个部分是在 HTML 中显示图像

我希望它是一个指针问题,我可能必须将循环当前项目设置为启动,但我现在不理解它....reset($this->imgList)没用

请帮忙

4

1 回答 1

0

我认为这与fetchAll通话有关,试试这个:

<?php
class Image extends Zend_Db_Table_Abstract {

    protected $_name = 'images';
    protected $images;

    public function getList() {

        // Employ lazy loading pattern to load images if they aren't set yet
        if (!isset($this->$images)) {
            $this->images = $this->fetchAll();
        }

        return $this->images;
    }
}?>
于 2012-04-27T19:46:18.320 回答