Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > Zend_Db
Zend_Db Forum d'entraide pour le composant Zend_Db du Zend Framework (création de requêtes, abstraction, ORM etc.). Avant de poster -> FAQ Zend_Db.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/03/2011, 13h47   #1
Futur Membre du Club
 
Inscription : mai 2008
Messages : 52
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 52
Points : 15
Points : 15
Par défaut doit on utiliser setIntegrityCheck(false) ?

Bonjour,

en tentant de faire une jointure entre une table fille et sa table parent, j'obtenais systématiquement le message d'erreur:

Citation:
Select query cannot join with another table in ...
en fouillant sur le net, je suis tombé sur ce blog:
http://lermit-informatique.blogspot....51359204482961

Citation:
Ceci est du à Zend Framework qui n'autorise pas par défaut de faire une simple jointure sur une table sous jacente.
et conseil donc d'ajouter en début du select:

Code :
1
2
 $select = $this->select()
        ->setIntegrityCheck(false)
Cela a en effet résolu mon problème. Toutefois, comme je ne trouve pas trace de ce conseil dans la doc, je me demande si il s'agit vraiment de la 'bonne' solution.

est-ce une bonne pratique ?
Etes-vous vous-même confronté à ce problème et comment le résolvez vous ?
dedis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 21h52   #2
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 8
Points : 11
Points : 11
La solution du setIntegrityChek est "une solution de facilitée", il faut savoir que dés que tu exécute une requête via zend_db celui-ci interroge les schémas de ta base de données ainsi que celui des tables concernées.

Dans ton cas tu ne doit pas avoir de contrainte d'intégrité (clé étrangères) dans ta table filles.
peterexia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 13h22   #3
Futur Membre du Club
 
Inscription : mai 2008
Messages : 52
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 52
Points : 15
Points : 15
Citation:
Envoyé par peterexia Voir le message
Dans ton cas tu ne doit pas avoir de contrainte d'intégrité (clé étrangères) dans ta table filles.
merci de me répondre

Je ne "dois" pas, c'est à dire: (désolé d'être un boulet)

- Il y en a et je ne devrais pas en avoir
- Il n'y en a pas et il devrait y en avoir

Parles-tu des contrainte de la table inodb ou bien du mapping dans le model ?

Concrètement, j'ai des dépendances entre mes tables SQL.
Elles sont réalisées avec MysqlWorkBench, et sont donc créé via des index.
J'ai mis des clauses cascade partout.

Avec ou sans Maping dans le modèle j'ai le message d'erreur (bon, ok, peut-être avec un mapping mal fait ).
J'ai cru comprendre qu'avec inodb, $_dependTable et $_referenceMap sont facultatifs, c'est bien ça ?

merci encore pour votre attention ^^
dedis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 18h01   #4
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 8
Points : 11
Points : 11
Pour moi,
Citation:
- Il n'y en a pas et il devrait y en avoir
Citation:
Concrètement, j'ai des dépendances entre mes tables SQL.
Elles sont réalisées avec MysqlWorkBench, et sont donc créé via des index.
J'ai mis des clauses cascade partout.

Avec ou sans Maping dans le modèle j'ai le message d'erreur (bon, ok, peut-être avec un mapping mal fait ).
J'ai cru comprendre qu'avec inodb, $_dependTable et $_referenceMap sont facultatifs, c'est bien ça ?
Je te renvoi vers ceci :
Citation:

http://framework.zend.com/manual/fr/...tionships.html

Note: Si votre SGBD implémente le mécanisme des cascades, alors vous n'avez pas besoin de déclarer $_dependentTables. Voyez Opérations d'écritures en cascade pour plus d'informations.
peterexia est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h49.


 
 
 
 
Partenaires

Hébergement Web