Bonjour j'ai installé un site cakephp sur un serveur 2008 avec iis7 alors je rencontre deux problèmes en ce moment!
le premier : j'ai une erreur lorsque j'essaye d'éditer une nouvelle page il me sort l'erreur :
Database Error
<p class="error">
<strong>Error: </strong>
SQLSTATE[HY000]: General error: 1364 Field name doesn't have a default value

<strong>SQL Query: </strong>
INSERT INTO sntt.posts (type, online, created, lft, rght) VALUES ('page', -1, '2013-01-21 13:13:21', 41, 42) </p>
et en local pourtant ça marche normalement !
Autre problème le formulaire de contact marche quand j(utilise un poste du réseau de la société en question et bug quand j'utilise un poste différént !
c'est la première fois que je travaille sous IIS7 Merci de bien vouloir m'aider !

1 réponse


Salut, je procéderais comme suit :)
PROBLEME AU NIVEAU DE LA STRUCTURE DE TA TABLE POSTS
Au niveau de ta base de donnée, vérifie dans la tables posts la structure de ton champ name, en principe c'est du varchar avec une taille de 200 (ou plus ou moins selon ce qu'il contiendra)
tu peut afficher la structure de ta table en rajoutant dans ton controller (dans l'action de ton choix par exemple index ou admin_index) cette ligne:

debug($this->Post->schema());

voila ce que j'ai moi au niveau SQL:

`name` varchar(200) NOT NULL,

(il n'y a pas de valeur par defaut)

PROBLEME AU NIVEAU DE LA VALIDATION DE TON MODEL POSTS
Sinon ben vérifie dans ton model Posts s'il n'y a pas une contrinte qui s'est inséré (au pire enlève toute les validations pour faire un test)
tu peut également dans ton controller (PostsController.php) désactiver la validation en mettant false comme second paramètre de ta fonction save
ce qui donnera quelquechose comme ca:

if ($this->Post->save($this->request->data,false)) {

Plus d'infos

PROBLEME AU NIVEAU DES FONCTIONS HOOKS (BEFORESAVE) DANS TON CONTROLLER
Du coté des ton PostsController.php ou dans ton AppController.php, il y a peut être du code qui causerait ceci (en modifiant la valeur de name) dans une fonction appelé beforeSave()
plus d'infos

Voila j'espère que cela t'aidera, bonne continuation :)