0 votes

Zend Framework Relationships - findDependentRowset

Lorsque j'appelle la méthode findDependentRowset, le rowset retourné contient toutes les lignes de la table dépendante, et non seulement les rowsets qui correspondent à la référence.

J'espère que quelqu'un pourrait expliquer cela, car j'étais sous l'impression que findDependentRowset ne renverrait que le rowset correspondant à ma 'règle' ?

J'ai les modèles DbTable suivants :

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',
        )
    );

}

Maintenant, lorsque j'exécute ce qui suit : (Simplifié pour la question)

$model = new Model_DbTable_Advertisement();
$rowSet = $model->fetchAll();
$row = $rowSet->current();
$dRow = $row->findDependentRowset('Model_DbTable_Image');

Je m'attends à ce que $dRow ne contienne que les 'Images' ayant le même advertisementId que $row, mais au lieu de cela, je reçois toutes les lignes de la table Images.

Toute aide est appréciée.

Cordialement, Morten

3voto

Robert Elwell Points 4431

La documentation semble indiquer que vous pourriez mal nommer certains éléments dans votre carte de référence pour la deuxième table. Vérifiez si le remplacement des clés 'column' et 'refColumn' par 'columns' et 'refColumns', puis le placement des valeurs de chaîne dans des tableaux singleton font l'affaire.

Consultez http://framework.zend.com/manual/en/zend.db.table.relationships.html#zend.db.table.relationships.defining pour plus d'informations

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X