Je sais que cela doit avoir une réponse facile, mais je ne peux pas comprendre. Après les larmes, j'espère que quelqu'un ici pourra m'aider.Pourquoi DOCM ORM ne créera-t-il pas de requête SQL pour mon modèle un-à-plusieurs?
Voici mon modèle YML:
Identity:
columns:
id:
type: integer(10)
primary: true
autoincrement: true
username:
type: string(255)
Profile:
columns:
id:
type: integer(10)
primary: true
autoincrement: true
identity_id:
type: integer(10)
profiletype_id:
type: integer(10)
name:
type: string(255)
relations:
Identity:
local: identity_id
foreign: id
class: Identity
foreignAlias: Profiles
Profiletype:
local: profiletype_id
foreign: id
class: Profiletype
foreignAlias: Profiles
Profiletype:
columns:
id:
type: integer(10)
primary: true
autoincrement: true
type:
type: string(255)
Comme vous pouvez le voir, 3 tables liées sont générées:
Identité
- peut avoir plusieurs profils
Profil
- a un Identité
- a un Profil type
Profiletype
- peut avoir plusieurs profils
Maintenant, dans mon code, je peux effectuer des requêtes sur les modèles générés pour l'identité et Profiletype.
Par exemple:
$q = Doctrine_Query::create()
->select('i.*')
->from('Identity i');
echo $q->getSqlQuery();
va fonctionner et produire:
SELECT i.id AS i__id, i.username AS i__username FROM identity i
Cependant, quand je vais exécuter une requête sur la table de profil, il ne fonctionnera pas. Même une requête simple telle que
$q = Doctrine_Query::create()
->select('p.*')
->from('Profile p');
echo $q->getSqlQuery();
échoue. J'ai essayé de changer le nom de classe dans le FROM en 'Profiles' au lieu de 'Profile'. Toujours rien.
Toutes les idées sur ce que je fais mal.
hmm ... impossible de reproduire votre erreur. quel genre d'erreur obtenez-vous? Je suppose que vous utilisez MySQL. avez-vous essayé une définition de schéma moins verbeuse, par exemple: ne définissez pas les identifiants de vos modèles et ne définissez que l'alias étranger pour vos relations. ne devrait pas importer, mais vaut le coup. –
L'erreur lancée serait utile. Y a-t-il du code personnalisé dans les modèles'Base' (ou ailleurs) qui pourrait être appelé? – DrColossos
@Darragh: oui, j'utilise mysql. J'ai essayé différents schémas. D'habitude, je suis beaucoup moins verbeux dans ma définition, cependant, étant donné que je m'arrachais les cheveux, j'ai essayé d'épeler les choses complètement dans le schéma. D'autres idées? –