2010-08-20 12 views
1

J'ai un DB (oui, celui-là) qui s'avère beaucoup plus facile d'accès via des vues que des tables brutes. En général, cela joue assez bien avec Doctrine, mais il y a un problème. Doctrine ne peut pas identifier une clé primaire dans une table de vue lors de la génération du YAML à partir du schéma de la base de données, donc elle en invente un appelé 'id'. Générer des classes à partir de cela signifie que toutes les requêtes échouent en l'absence de ce champ d'identification.Utilisation de Doctrine avec des vues - champ 'id' dud généré

Y a-t-il un moyen d'indiquer au script du générateur qu'il ne doit pas créer ce champ, et de le diriger vers un autre qui est plus approprié? Je peux voir comment le faire dans le YAML, ou dans une classe avec des annotations, mais pas moyen de le faire dans la base de données.

Suggestions bienvenues.

(Ceux qui ont suivi mes questions (pourquoi?) Aura probablement travaillé combien amusant que je vais avoir avec la doctrine et cette base de données. Je pense que ce qu'on appelle une « expérience d'apprentissage ».)

Répondre

0

peut-être pas exactement ce que vous avez demandé, mais une autre solution est de mettre cela dans la classe modèle

public function setUp() { 
    Doctrine_Core::getTable('your_view_name')->removeColumn('id'); 
    parent::setUp(); 
} 

espère que cela aide quelqu'un à ce problème