Bonjour,
Je me lance depuis peu dans Symfony dans le but de développer une plateforme web permettant à ma mère de gérer les lectures de ses élèves. J'ai parcouru pas mal la documentation, et tente d'appliquer les différents concepts. J'en suis à la création de la base de données, et à l'utilisation des modèles générés. Voici mon problème, avec un schema simplifié :
La génération via ./symfony doctrine:bla-bla génère bien l'ensemble des modèles, j'ai aussi chargé des données dans les tables, histoire de pouvoir tester ces modèles avant de rendre plus complexe ma BDD.
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 Book: tableName: book actAs: Timestampable: ~ columns: serial: { type: string(20), notnull: true, unique: true } Reader: tableName: reader actAs: Timestampable: ~ columns: serial: { type: string(20), notnull: true, unique: true } relations: Books: class: Book refClass: BookReader local: id foreign: book_id foreignAlias: Readers BookReader: tableName: book_reader actAs: Timestampable: ~ options: symfony: { form: false, filter: false } columns: book_id: { type: integer, primary: true } reader_id: { type: integer, primary: true } relations: Book: { local: book_id, foreign: id, foreignAlias: BookReaders } Reader: { local: reader_id, foreign: id, foreignAlias: BookReaders }
Là où je bloque, c'est que je souhaiterais récupérer, pour un livre identifié par son serial, tous les lecteurs. Selon ce que j'ai pu lire (mais j'ai surement mal compris un concept), lorsqu'on établi des relations dans le schema de la BDD, certaines fonctions sont générées automatiquement, c'est pourquoi, je pensais que le code suivant fonctionnerait :
Vous vous en doutez, ça ne fonctionne pas, et j'ai l'erreur suivante (assez claire) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $q = Doctrine_Core::getTable('Book') ->createQuery('b') ->where('b.serial = ?', $this->serial); $book = $q->execute(); $this->readers = $book->getReaders();
Est-ce que cette fonction n'aurait pas du être générer, à la vue de la relation n-n entre ces deux tables ? C'est ce que j'attendais comme behavior lorsque j'ai lu cette idée dans l'introduction à Symfony (http://www.symfony-project.org/gentl...elated_records).
Code : Sélectionner tout - Visualiser dans une fenêtre à part Fatal error: Call to undefined method Doctrine_Collection::getReaders() in [...]
Merci d'avance pour votre aide !
Partager