Zend框架关系 - findDependentRowset

时间:2010-05-18 07:16:16

标签: zend-framework zend-db-table

当我调用方法findDependentRowset时,返回的rowset包含依赖表中的所有行,而不仅仅是与引用匹配的行集。

希望有人可以解释一下,因为我假设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具有相同adsId的'Images',而是接收Images表中的所有行。

1 个答案:

答案 0 :(得分:4)

文档似乎说你可能在第二个表的参考地图中误解了一些元素。看看是否用'columns'和'refColumns'替换'column'和'refColumn'键,然后将字符串值放入singleton数组就行了。

有关详细信息,请参阅http://framework.zend.com/manual/en/zend.db.table.relationships.html#zend.db.table.relationships.defining