Pour autant que je peux dire _referenceMap $ n'est pas utilisé de cette façon. $ _referenceMap définit la relation entre une ligne de table et d'autres tables. C'est pourquoi les findDependentRowset(), findManyToManyRowset() et findParentRow() associés sont trouvés dans Zend_db_Table_Row_Abstract. Ces méthodes créent les jointures. Donc, pour obtenir les lignes dépendantes des bogues, en utilisant un objet select, vous feriez quelque chose comme ceci, en supposant que Products a une relation un-à-plusieurs avec 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')
)
);
}
Pour obtenir des lignes dépendantes, vous devez d'abord aller chercher une ligne parente.
$products = new Products();
$productRow = $products->find(123)
->current();
Vous pouvez affiner la rejoindre en utilisant Zend_Db_Select
$select = $products->select()
->where('foo_bar = ?', 'cheese')
->limit(2);
Enfin interroger les lignes dépendantes en passant dans l'objet de sélection à la place au lieu d'une clé de règle. Je pense que cela fonctionnera, je vais devoir vérifier demain matin.
Great :) Juste gagné le Badge de Tumbleweed! – Phliplip
Je cherche cette réponse aussi, ou faire quelque chose de similaire en utilisant $ _referenceMap – gawpertron