Когда я вызываю метод findDependentRowset, возвращаемый набор строк содержит все строки в зависимой таблице, а не только те наборы строк, которые соответствуют ссылке.
Надеясь, что кто-то может это объяснить, поскольку я предполагал, что findDependentRowset будет возвращать только набор строк, соответствующий моему «правилу»?
У меня есть следующие модели DbTable:
class Model_DbTable_Advertisement extends Zend_Db_Table_Abstract
{
protected $_name = 'Advertisements';
protected $_primary = 'Id';
protected $_dependentTables = array (
'Model_DbTable_Image',
);
}
class Model_DbTable_Image extends Zend_Db_Table_Abstract
{
protected $_name = 'Images';
protected $_primary = 'Id';
protected $_referenceMap = array(
'Images' => array(
'column' => 'AdvertisementId',
'refColumn' => 'Id',
'refTableClass' => 'Model_DbTable_Advertisement',
)
);
}
Теперь, когда я выполняю следующее: (упрощено ради вопроса)
$model = new Model_DbTable_Advertisement();
$rowSet = $model->fetchAll();
$row = $rowSet->current();
$dRow = $row->findDependentRowset('Model_DbTable_Image');
Я бы ожидал, что $dRow будет содержать только «изображения», которые имеют тот же рекламный идентификатор, что и $row, но вместо этого я получаю все строки в таблице изображений.