2010-05-25 7 views
0

J'avais un site web fait pour moi il y a longtemps, et le programmeur l'a fait dans CakePHP. Je suis en train d'éditer ses scripts.Nouveau sur CakePHP -> Comment ajouter des colonnes à une table MySQL?

J'ai ajouté quelques colonnes à une table, et j'ai trouvé que faire saveField() sur la nouvelle colonne ne fait rien. Comment faire pour que CakePHP reconnaisse les nouvelles colonnes?

J'apprécierais votre aide. Je ne suis pas trop familier avec CakePHP, donc s'il vous plaît allez-y doucement sur moi =)

Répondre

3

Les données du cache est enregistré dans YourAppFoloer/tmp/cache/models (supprimer les fichiers là-in)

Vous pouvez également essayer Cache::clear()

http://book.cakephp.org/view/1382/Clearing-the-Cache

Modifier - c'était horrible dans le commentaire:

Vous pouvez l'ajouter à un contrôleur appeler:

function superHandyCacheClearer() { $ this-> autoRender = false; Cache :: clear(); }

Et appelez www.yourcakeapp.com/yourControllerYouAddedItTo/superHandyCacheClearer - mais vraiment, c'est quand vous faites des changements dans le code. Suppression du contenu du dossier de cache, vraiment, devrait être le fix

+0

J'apprécie votre réponse. Pouvez-vous s'il vous plaît préciser ce qu'il faut faire avec "Cache :: clear()"? Est-ce quelque chose à inclure dans un script PHP, ou quoi? Comment exécuter cette commande? J'ai essayé de supprimer le fichier de cache dont j'ai besoin, mais il ne recréait pas le fichier de cache. – walden

+0

Suppression des fichiers dont j'avais besoin - les colonnes dont j'ai besoin peuvent maintenant être mises à jour. Cependant, pourquoi le fichier cache n'est-il pas recréé à nouveau? Cela prend-il un certain temps ou quelque chose? Merci beaucoup. – walden

+0

(voir réponse) - avez-vous vérifié que votre appel saveField est correct? essayé avec une colonne qui était là? Peut-être essayer un insert complet? $ model-> field1 = 'contenu'; $ model-> save(); ? –

1

assurez-vous que le dossier du cache est toujours disposé comme il était initialement

cache 
    models 
    persistent 
    views 

Et ils sont tous « inscriptible » par le serveur Web , notez également que si vous utilisez un niveau de débogage de 0, certains fichiers de cache peuvent ne pas être créés à chaque requête. Mais rappelez-vous que chaque fois que vous modifiez les fichiers du modèle ou la base de données elle-même, vous devez effacer le dossier cache/models.

HTH

Questions connexes