Zend соединение слева с несколькими результатами из левой таблицы - PullRequest
0 голосов
/ 23 февраля 2012

Я пытаюсь выбрать один элемент из таблицы элементов и присоединиться ко второй таблице (изображения).Изображения таблицы будут иметь несколько результатов для каждого элемента.Проблема в том, что объединение результатов приносит только один результат вместо массива со всеми данными изображений.

Код

    $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 голосов
/ 23 февраля 2012

в вашем посте у вас есть $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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...