在小型商店应用程序上工作时,我使用Zend Framework的“findManyToManyRowset”功能获取文章的所有颜色。
示例:
$colors = $article->findManyToManyRowset('Shop_Colors',
'Shop_ArticlesToColors');
部分文章没有分配颜色。我在“findManyToManyRowset”的结果上使用count($ colors)测试它。但是,取代预期的结果“0”,我得到一个“1”,这让我感到困惑。
为什么?如果结果为空,我该如何测试呢?
谢谢:) 斯蒂芬
答案 0 :(得分:3)
findManyToManyRowset返回Zend_DbTable_Rowset类的对象。因此count($ colors)不会返回行数。
获取行数的方法是:
$colors->count();
答案 1 :(得分:1)
由于计数为1,你是否抛弃了$ colors rowset以查看行集中的内容?显然有些东西在里面。
print_r($colors->toArray());
答案 2 :(得分:0)
但是当你写这篇文章时,我想到了一些东西。我在color的rowset类中更改了“toArray”方法以符合我的需要(更改了数据的格式)。也许这就是问题?
public function toArray() {
$toArray = array();
if (count($this->_data) > 0) {
foreach ($this as $row) {
$toArray[$row['color_id']] = $row['color'];
}
}
return $toArray;
}