至於我可以告訴$ _referenceMap不以這種方式使用。 $ _referenceMap定義了表格行與其他表格的關係。
這就是爲什麼在Zend_db_Table_Row_Abstract中找到關聯的findDependentRowset(),findManyToManyRowset()和findParentRow()。這些方法創建聯接。
因此,要使用select對象從Bugs獲取相關行,您應該這樣做,假設Products與Bugs具有一對多關係;
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);
我覺得這樣會起作用的,明天早上我會去查。
大:)只是賺風滾草徽章! – Phliplip 2010-06-12 19:50:26
我正在尋找這個答案,或者使用$ _referenceMap – gawpertron 2010-09-15 15:12:25