J'ai un formulaire avec un champ de téléchargement de fichier et j'ai créé un fichier de comportement de modèle pour gérer le traitement de fichiers.Enregistrement du modèle dans afterSave() dans cakePHP
J'ai deux fonctions, BeforeSave et afterSave:
En beforeSave je fais des trucs et définir la valeur de fichier dans les données null afin qu'il puisse être sauvé. Sinon, il essaiera de sauvegarder un tableau, et la base de données attendra juste une chaîne (le nom du fichier)
Dans afterSave, je génère un nouveau nom de fichier basé sur certains champs de texte sur le formulaire, et j'ajoute lastInsertId en-dessous. Je déplace également le fichier de temp à l'emplacement désiré. Tout cela fonctionne très bien, mais quand j'essaie de sauvegarder le nouveau nom de fichier dans le modèle, ça ne marche pas.
J'ai fait beaucoup de test et de débogage, et j'ai passé des heures à chercher en ligne. La conclusion est que vous ne pouvez pas enregistrer dans afterSave, il se déclenche et s'exécutera avantSave à nouveau.
Donc, ma question est, comment puis-je mettre à jour le modèle nouvellement inséré? Le nom de fichier inséré doit avoir la clé primaire dans son nom et son inconnue au moment de beforeSave.
reconnaissant pour toute aide! jason
c'est où im le faire, mais son ne fonctionne pas. il semble initier beforeSave à nouveau, car c'est ce que je fais, ce qui sauve. – Jason
@Jason, il va tirer avantSave si vous essayez de le sauvegarder à nouveau. au sein d'aftersave. essayez peu ajouté à la poste et laissez-moi savoir ce qui se passe – Ish
comment voulez-vous dire? Comment puis-je sauvegarder avec query()? – Jason