Fondamentalement, j'ai une relation N: M (entre les tables "plans" et "abonnements"). Les clés primaires Plans et Abonnements sont les clés primaires de cette relation N: M, cette relation N: M a également un attribut "prix". Puisque j'ai besoin de mettre à jour l'attribut de prix sur cette table, je ne peux pas comprendre comment y accéder avec les classes générées par Propel. Comme je peux le voir, il semble que les classes Plan et Abonnement n'ont aucune méthode qui me permet de faire ce dont j'ai besoin.Comment puis-je accéder à une valeur de clé non primaire dans une table CrossRef générée par Propel?
Ceci est la partie de mon schema.xml où sont déclarés ces relations d'arbres (plans, abonnements et leurs CrossRef)
<table name="subscriptions" phpName="Subscription">
<column name="id_subscription" type="integer" required="true" primaryKey="true" autoIncrement="true"/>
<column name="name" type="varchar" required="true"/>
<column name="description" type="longvarchar" required="true"/>
</table>
<table name="planes_subscriptions" isCrossRef="true">
<column name="id_plan" type="integer" primaryKey="true"/>
<column name="id_subscription" type="integer" primaryKey="true"/>
<column name="price" type="real"/>
<foreign-key foreignTable="planes" onDelete="CASCADE" onUpdate="CASCADE">
<reference local="id_plan" foreign="id_plan"/>
</foreign-key>
<foreign-key foreignTable="subscriptions" onDelete="CASCADE" onUpdate="CASCADE">
<reference local="id_subscription" foreign="id_subscription"/>
</foreign-key>
</table>
<table name="planes" phpName="Plan">
<column name="id_plan" type="integer" required="true" primaryKey="true" autoIncrement="true"/>
<column name="name" type="varchar" required="true"/>
<column name="description" type="longvarchar" required="false"/>
<column name="price" type="real" required="true"/>
</table>
Je pensais que je pourrais avoir à coder des trucs sur les classes générées Propel pour le faire, mais je ne peux pas comprendre comment accéder à une ligne de cette table par ses clés primaires non plus.
J'ai fait des recherches sur la documentation de Propel, mais ils ne traitent pas ce cas particulier:
Blog: Many-to-many Relationships: Check!