2010-12-01 29 views
0

J'ai une fonctionnalité dans mon projet où je dois montrer à l'utilisateur un aperçu de la façon dont la page va ressembler après avoir soumis le formulaire. Pour la prévisualisation, je règle l'objet Propel associé avec les valeurs du formulaire et à la fin n'enregistre aucune valeur car il ne s'agit que d'un aperçu.Simuler l'enregistrement propel objet (Ne pas écrire dans les tables)

Cela fonctionne, mais les valeurs précédentes de la table liée sont supprimées et après l'aperçu, toutes les tables associées ne sont pas restaurées à leur état précédent, car je ne sauvegarde pas l'objet. S'il vous plaît, est-ce un bug? Je ne veux enregistrer aucune valeur dans une table, mais j'utilise simplement l'objet pour afficher l'aperçu.

Y a-t-il un moyen approprié de le faire?

EDIT: Je vais reformuler cette question. Si je ne sauvegarde pas l'objet Propel, les modifications seront-elles affectées dans les tables? À l'heure actuelle, si je ne sauvegarde pas, la table principale n'est pas affectée mais les relations sont affectées et ne sont pas restaurées aux anciennes valeurs si l'objet n'est pas sauvegardé. Par exemple: J'ai deux tables, job et jobectors avec une relation de clé étrangère. Je fais $ job-> addJobsector ('someSector');

Je n'enregistre pas l'objet, mais la valeur précédente dans le secteur de travaux est supprimée et il n'y a pas de nouvelle valeur.

Merci

+0

Comment pourriez-vous affecter les données des tables connexes si vous n'enregistrez rien? Cela peut être utile si vous publiez des extraits de code pertinents. – wimvds

Répondre

1

Je l'ai résolu. Chaque fois que des fonctions commençant par initTablename() sont utilisées, il semble que les valeurs précédentes étaient supprimées. Je n'appelle pas ces fonctions pour l'aperçu. Et ne pas enregistrer l'objet ne stockera aucune donnée dans la base de données.

Remerciements

0

Essayez avec une transaction: démarrer une transaction, puis enregistrez toutes les données nécessaires, d'afficher ce que vous avez besoin et annuler la transaction. Donc, tout ce que vous avez fait dans votre transaction (enregistrement, suppression) est stocké dans la base de données

+0

Merci Arione, j'ai essayé des transactions, mais sans effet. Mon problème est que les données dans les tables liées sont affectées même si je ne sauvegarde pas l'objet propel à la fin. – Harsha