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
}

?>

上記のコードは正常に機能していますが、数行下では、同じデータを繰り返し処理する必要があり、何も出力されません。最初のものにコメントすると、2番目が機能し始めます。

最初の部分はJS配列を作成することであり、ヘッドセクションにあります。2番目の部分は画像を表示するための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 に答える