2009-12-18 5 views
0

Je n'ai pas été en mesure de trouver des informations sur la meilleure façon de gérer l'édition d'enregistrements avec l'approbation de CakePHP. En particulier, je dois autoriser les utilisateurs à modifier les données d'un enregistrement, mais les données modifiées ne doivent pas écraser les données d'enregistrement originales tant que les administrateurs n'ont pas approuvé la modification. Je pourrais mettre les disques édités dans une nouvelle table et écraser les originaux quand je les approuverais mais je me demande s'il y a une manière plus facile puisque cette idée ne semble pas bien jouer avec la philosophie de gâteau pour ainsi dire.Méthode recommandée pour gérer l'édition d'enregistrements avec approbation dans CakePHP?

Répondre

2

Vous aurez besoin d'un emplacement pour stocker ces données jusqu'à ce qu'un administrateur puisse les approuver. Je ne suis pas sûr comment cela peut être plus facile que de créer une autre table avec les nouvelles modifications et l'ID de poste d'origine. Ensuite, lorsqu'un administrateur approuve la modification, le script écrase l'ancien enregistrement avec la version modifiée.

1

Je travaille sur une configuration similaire et je vais stocker l'enregistrement brouillon dans la même table mais avec un drapeau défini sur l'enregistrement appelé "brouillon". En outre, l'enregistrement d'origine possède un champ "draft_id" dans lequel l'ID de l'enregistrement de brouillon est stocké. Ensuite, dans le modèle lorsque l'enregistrement d'origine est chargé par le moteur d'affichage, il est normalement affiché. Mais lorsque les actions d'édition ou de prévisualisation tentent de charger l'enregistrement, il vérifie le champ "draft_id", puis charge l'autre enregistrement s'il est défini. L'indicateur "draft" est utilisé pour empêcher la liste et les autres actions de type recherche de groupe de saisir aussi les enregistrements de brouillon. Cela pourrait également être résolu par une requête SQL plus avancée, mais je ne suis pas très bon avec SQL.

Questions connexes