Zend从左表中加入多个结果

时间:2012-02-23 13:48:55

标签: arrays zend-framework join multiple-results

我正在尝试从项目表中选择一个项目并加入第二个表格(图像)。表格图像将为每个项目提供多个结果。问题是结果连接只带来一个结果,而不是带有所有图像数据的数组。

代码

    $select = $this->select();
    $select->setIntegrityCheck(false);
    $select->from($this)
           ->joinLeft('items_images', 'items.item_id = image_item_id')
           ->where($where);
    $result =  $this->fetchRoll($select);

我缺少什么?

由于

1 个答案:

答案 0 :(得分:0)

在你的帖子中$result = $this->fetchRoll($select); 我认为你可能正在做错字错误  代码中的$result = $this->fetchRow($select);

但你应该使用fetchAll:

$result =  $this->fetchAll($select);

http://framework.zend.com/manual/en/zend.db.table.html

编辑:使用包含所有图像的子数组获取项目的数据数组

$results =  $this->fetchAll($select);

$item['item_id'] = $result[0]['item_id'];
//put other item's data here in item
$images = array();
$i = 0;
foreach($results as $result){
  $images[$i]['image_id'] = $result['image_id']
  $images[$i]['image_name'] = $result['image_name']
  //put other image's data here in $images[$i]
  $i++;
}

$item['images'] = $images;