在Zend Php中连接模型内的表
我了解在Zend Php中连接模型内的表,php,zend-framework,zend-db,Php,Zend Framework,Zend Db,我了解Zend_Table的用法,可以使用Zend函数从与该类关联的表中获取数据。例如,我有一个视频表,在另一个表中,我有视频和它所属类别之间的关联 我有点困惑如何在框架内激活如下选择: SELECT * FROM video,category WHERE category.category_id = 3 AND video.id = category.video_id 我希望在引用视频表的视频模型中实现这一点。从您发布的内容来看,视频表和类别之间似乎存在某种关系:一个类别有许多视频,而一个视
Zend_Table
的用法,可以使用Zend函数从与该类关联的表中获取数据。例如,我有一个视频表,在另一个表中,我有视频和它所属类别之间的关联
我有点困惑如何在框架内激活如下选择:
SELECT * FROM video,category WHERE category.category_id = 3 AND video.id = category.video_id
我希望在引用视频表的视频模型中实现这一点。从您发布的内容来看,视频表和类别之间似乎存在某种关系:一个类别有许多视频,而一个视频属于一个类别。您应该查看Zend_Db_表关系。这里是一个粗略的类。它直接使用Zend db适配器,因此Zend_db_表对象并不真正了解这种关系,但它可以工作
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);
}
}