[英]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.