メソッド 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 と同じadvertisingId を持つ「画像」のみが含まれていると予想されますが、代わりに Images テーブルのすべての行を受け取ります。