Bonjour à tous,

J'aimerai savoir comment gérer les contraintes d'intégritées multiples avec Zend.

Voilà mes tables concernées :

articles (id_articles, titre, contenu, extrait)
article_rubrique (id_article, id_rubrique)
rubrique (id_rubrique, titre)

Voilà mes class de tables:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
class Table_Article extends Zend_Db_Table 
{
	 /**
     * Nom de la table (vue)
     *
     * @var string
     */
 
    protected $_name = 'article';
 
    /**
     * Clé primaire de la table.
     * 
     * @var string
     */
 
    protected $_primary = 'id_article';
 
    /**
     * Liaisons entre les tables
     *
     * @var array
     */
 
    protected $_referenceMap = array(
    	'utilisateur' => array(
    		'columns' => 'id_utilisateur',
    		'refTableClass' => 'Table_Utilisateur'
    	   	),
    	'article_rubrique' => array(
    		'columns' => array('id_article', 'id_rubrique'),
    		'refTableClass' => 'Table_ArticleRubrique'
    	)
    );
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
class Table_ArticleRubrique extends Zend_Db_Table 
{
	 /**
     * Nom de la table (vue)
     *
     * @var string
     */
 
    protected $_name = 'article_rubrique';
 
    /**
     * Clé primaire de la table.
     * 
     * @var string
     */
 
    protected $_primary = array('id_article', 'id_rubrique');
 
     /**
     * La clé primaire n'est pas auto-incrémentée
     *
     * @var bool
     */
 
    protected $_sequence = true;
 
    /**
     * Liaisons entre les tables
     *
     * @var array
     */
 
    protected $_referenceMap = array(
    	'article' => array(
    		'columns' => 'id_article',
    		'refTableClass' => 'Table_Article'
    	   	),
    	'rubrique' => array(
    		'columns' => 'id_rubrique',
    		'refTableClass' => 'Table_ArticleRubrique'
    ));
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
class Table_Rubrique extends Zend_Db_Table 
{
	 /**
     * Nom de la table (vue)
     *
     * @var string
     */
 
    protected $_name = 'rubrique';
 
    /**
     * Clé primaire de la table.
     * 
     * @var string
     */
 
    protected $_primary = 'id_rubrique';
 
    /**
     * Liaisons entre les tables
     *
     * @var array
     */
 
    protected $_referenceMap = array(
    	'utilisateur' => array(
    		'columns' => 'id_utilisateur',
    		'refTableClass' => 'Table_Utilisateur'
    	),
    	'rubrique' => array(
    		'columns' => 'parent',
    		'refTableClass' => 'Table_Rubrique'
    	),
    	'article_rubrique' => array(
    		'columns' => array('id_article', 'id_rubrique'),
    		'refTableClass' => 'Table_ArticleRubrique'
    	)
    );
}
L'idée c'est de pouvoir lier un article à plusieurs rubriques mais je ne vois pas bien comment m'y prendre et surtout si Zend propose des solutions pour résoudre ce genre de contraintes.