繁体   English   中英

从Zend的2个表中获取结果

[英]Getting results from 2 tables in Zend

我有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 )

Gallery模型中的代码:

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,但无法正常工作。 请让我知道如何实现此目标。 任何帮助深表感谢。

您可以使用join子句从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更改列名

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM