Насколько я могу судить, $ _referenceMap не используется таким образом. $ _referenceMap определяет связь строки таблицы с другими таблицами.
Вот почему связанные функции findDependentRowset (), findManyToManyRowset () и findParentRow () находятся в Zend_db_Table_Row_Abstract. Эти методы создают соединения.
Таким образом, чтобы получить зависимые строки от Багов, используя объект выбора, вы должны сделать что-то вроде этого, предполагая, что у Продуктов есть отношение один-ко-многим с Багами;
class Products extends Zend_Db_Table_Abstract
{
protected $_name = 'products';
protected $_dependentTables = array('Bugs');
}
class Bugs extends Zend_Db_Table_Abstract
{
protected $_referenceMap = array(
'Products' => array(
'columns' => array('bug_id')
,'refTableClass' => 'Products'
,'refColumns' => array('bug_id')
)
);
}
Чтобы получить зависимые строки, сначала нужно выбрать родительскую строку.
$products = new Products();
$productRow = $products->find(123)
->current();
Вы можете уточнить соединение, используя Zend_Db_Select
$select = $products->select()
->where('foo_bar = ?', 'cheese')
->limit(2);
Наконец, выполняется запрос к зависимым строкам путем передачи объекта выбора вместо ключа правила.
$bugRowset = $productRow->findDependentRowset('Bugs', 'Products', $select);
Я думаю, что это сработает, я должен проверить завтра утром.