utilisation fonction "beforeSave"

Par jilou2010, il y a 13 ans


bonsoir j'ai suivi le tuto du blog en cakePHP tous fonctionne j'arrive bien à faire tous les opération à par le contrôle avant de sauver le contenu dans ma base de donnée avec la fonction "beforeSave" là il y a une erreur j'ai essayé avec clean , html mais aucune des 2 fonctionne voici mon code si vous pouvez m'aider merci d'avance

function beforeSave() {
            App::import('Sanitise');

             $this->data'Comment']'contenu'] = Sanitize::html($this->data'Comment']'contenu']);
            return true;
        }

7 réponses

jilou2010, il y a 13 ans

voila j'ai peut-être trouver j'ai pris la fonction du model.php qui ce trouve sous cake maintenant si j'essaye de envoyer du code javaScript il ne l'affiche pas mais l'enregistre comme simple texte dans ma base de donnée voici la fonction

public function beforeValidate($a = array()) {
        return true;
    }

seulement du code html lui passe que puis-je faire pour résoudre ce problème?

Maenhyr, il y a 13 ans

Ton import n'est pas complet. Remplace le par :

App::uses('Sanitize', 'Utility');

Et là ça va marcher.

jilou2010, il y a 13 ans

merci pour la réponse mais cela ne fonctionne pas non plus!
j'utilise netbean avec mon code en cakePHP et le logiciel me met un bouton vert à coté de la fonction befoforeSave et quand je clic dessus il me dit qu'il y a un model sous le dossier cake "overrides method from Model(model.php)" j'ai voulu le retirer mais alors je n'avait plus rien à l'écran dont je suppose que celui là gère tous les modèles mais alors je ne sais pas ce que je dois faire pour que la fonction marche peut-être ajouter la fonction dans le fichier Model du dossier cake?
merci pour votre aide

Maenhyr, il y a 13 ans

Oulala j'ai l'impression que tu vas faire des bêtises! Ne JAMAIS modifier le dossier cake. As tu crée un fichier AppModel.php qui étend de Model? Dans quel Model as tu mis ton beforeSave? Ce Model etend il AppModel?

jilou2010, il y a 13 ans

je n'ai pas changer le modèle de cake , j'ai juste copier la fonction dans le modèle que j'ai créer moi-même il y avait déjà un fichier AppModel.php celui là je n'y ai pas toucher non plus, maintenant ça fonctionne seulement si dans mon champs contenu je met du code html là cela passe et on peut toujours mettre en gras ou autre

jilou2010, il y a 13 ans

merci ça fonctionne maintenant j'ai remis comme avant la fonction beforeSave() dans mon modèle et dans mon controleur j'ai mis App::uses('Sanitize','Ulity')