0

在开发小型商店应用程序时,我使用 Zend Framework 的“findManyToManyRowset”功能获取文章的所有颜色。

例子:

$colors = $article->findManyToManyRowset('Shop_Colors',
          'Shop_ArticlesToColors');

有些文章没有指定颜色。我在“findManyToManyRowset”的结果上使用 count($colors) 对其进行测试。但结果不是预期的“0”,而是“1”,这让我很困惑。

这是为什么 ?如果结果为空,我该如何测试?

谢谢 :) 斯蒂芬

4

3 回答 3

3

findManyToManyRowset 返回 Zend_DbTable_Rowset 类的对象。因此 count($colors) 不会返回行数。

获取行数的方法是:

$colors->count();
于 2011-11-25T17:42:26.677 回答
1

由于计数为 1,您是否已丢弃 $colors 行集以查看行集中的内容?显然里面有东西。

print_r($colors->toArray());
于 2010-07-05T18:42:25.473 回答
0

是的,我做到了。受保护的数组 _data 为空。这就是为什么我很困惑:)

但是当你写这篇文章时,我想到了一些事情。我更改了颜色行集类中的方法“toArray”以满足我的需要(更改了数据的格式)。也许这就是问题所在?

public function toArray() {

    $toArray = array();

    if (count($this->_data) > 0) {
        foreach ($this as $row) {

            $toArray[$row['color_id']] = $row['color'];
        }
    }

    return $toArray;
}
于 2010-07-06T08:37:23.063 回答