1

我有2个数据库表,

1. gallery -> id, title, description
2. gallery_images -> image_id, gallery_id, name, image_title, thumb_name, image_name

我可以使用我的 Admin_Model_GalleryImages 为特定的 gallery_id 选择图像,我的结果数组如下所示 -

Array ( 
[0] => Array ( 
          [image_id] => 1 
          [gallery_id] => 24 
          [image_title] => NICEIC.png 
          [thumb_name] => thumb_.6386527349.png 
          [image_name] => 6386527349.png ) 

[1] => Array ( 
          [image_id] => 2 
          [gallery_id] => 24 
          [image_title] => gas_safe_logo_monoblack.png 
          [thumb_name] => thumb_2100528832.png 
          [image_name] => 2100528832.png )

图库模型中的代码:

require_once 'Zend/Db/Table/Abstract.php';
require_once APPLICATION_PATH . '/modules/admin/models/Gallery.php';

class Admin_Model_GalleryImages extends Zend_Db_Table_Abstract {

    protected $_name = 'gallery_images';
    protected $_referenceMap = array(
            'Gallery' => array(
            'columns'       => array('gallery_id'),
            'refTableClass' => 'Admin_Model_Gallery',
            'refColumns'    => array('id'),
            'onDelete'      => self::CASCADE,
            'onUpdate'      =>self::RESTRICT
        )
    );

    public function getImages($id){
        $galleryImages = new self();
        $galleryRowset = $galleryImages->select();
        $galleryRowset->where('gallery_id='.$id);
        $images = $galleryImages->fetchAll($galleryRowset);
        return $images;

控制器中的 listimages 操作:

public function listimagesAction(){
        $id = $this->_getParam('id');


        $currentImages = Admin_Model_GalleryImages::getImages($id);
        if ($currentImages->count() > 0) {
            $this->view->galleryImages = $currentImages;
        } else {
            $this->view->galleriesImages = null;
        }
    }

但我想要第一个表的结果以及第二个表的结果,如下所示:

Array ( 
    [0] => Array ( 
              [image_id] => 1 
              [gallery_id] => 24 
              [image_title] => NICEIC.png 
              [thumb_name] => thumb_.6386527349.png 
              [image_name] => 6386527349.png
              [id] => 24 
              [title] => Somename
              [description] => description )

我尝试使用findDependentRowset但无法正常工作。请让我知道如何实现这一目标。任何帮助深表感谢。

4

1 回答 1

1

您可以使用连接子句从 2 个表中选择数据

这是 sudo 代码,您可以将其更改为您的表名

$query = $this->select();
$query->setIntegrityCheck(false);
        $query->from(array('g' => 'games'), array());
        $query->join(array('r' => 'ranks'), 'g.id = r.game_id', array('g.title', 'g.asin', 'g.platform_id', 'r.rank'));
        $resultRows = $this->fetchAll($query);
        return $resultRows;

只需使用 gallery 和 galleryimages 更改您的列名

于 2013-07-26T06:38:39.647 回答