[Doctrine] "Methodes relationnels" inexistantes dans le modèle
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é :
Code:
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 } |
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.
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 :
Code:
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(); |
Vous vous en doutez, ça ne fonctionne pas, et j'ai l'erreur suivante (assez claire) :
Code:
Fatal error: Call to undefined method Doctrine_Collection::getReaders() in [...]
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).
Merci d'avance pour votre aide !