在Zend Php中连接模型中的表

时间:2009-08-19 12:34:52

标签: php zend-framework zend-db

我理解Zend_Table的用法,并且可以使用与该类关联的表中的Zend函数来获取数据。例如,我有一个视频表,而在另一个表中,我有视频与它所属类别之间的关联。

我有点难过如何激活框架中的以下选择:

SELECT * FROM video,category WHERE category.category_id = 3 AND video.id = category.video_id

我希望在引用视频表的视频模型中执行此操作。

2 个答案:

答案 0 :(得分:1)

这是一个粗略的课程。它直接使用Zend db适配器,因此zend_db_table对象并不真正意识到这种关系,但是它可以工作。

class Video extends Zend_Db_Table
{
   public function doQueryWithSql($id)
   {
     $qy = " SELECT * FROM video,category WHERE category.category_id = $id AND video.id = category.video_id ";
     return $this->getAdapter()->fetchAll($qy);
   }

   public function doQueryWithObject($id)
   {
     $select = $this->getAdapter()->select();
     $select->from(array('v'=>'video'))
            ->join(array('c'=>'category'),'v.id = c.video_id')
            ->where("c.category_id = $id");
     return $this->getAdapter()->fetchAll($select);
   }
}

答案 1 :(得分:0)

根据您发布的内容,似乎视频和类别的表格之间存在关联:类别包含许多视频,而视频属于某个类别。您应该在Zend_Db_Table关系上查看this article