Объединение таблиц в модели в Zend Php

Я понимаю использование Zend_Table и могу получать данные с помощью функций Zend из таблицы, связанной с этим классом. Например, у меня есть таблица видео, а в другой таблице - связь между видео и его категорией.

Я немного озадачен, как активировать в фреймворке такой выбор:

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

Я хочу сделать это в рамках видеомодели, которая относится к видеотаблице.


person Community    schedule 19.08.2009    source источник


Ответы (2)


Вот примерный класс. Он напрямую использует адаптер 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);
   }
}
person txyoji    schedule 21.08.2009

Из того, что вы опубликовали, кажется, что существует связь между таблицами для видео и категориями: в категории много видео, а видео принадлежит категории. Вам следует ознакомиться с этой статьей / a> по отношениям Zend_Db_Table.

person Ignas R    schedule 19.08.2009