Bonjour,

Je rencontre un problème lors d'un enregistrement dans la base de données sur cakePHP 2.x, j'ai la variable

$this->request->data['Page']['parent_id'] = 0

et le résultat dans la base de données est "null"

Le problème ne se produit que sur mon serveur local sous docker, pas sur le serveur distant, je pencherais donc sur un problème de config de docker, mais je ne trouve rien à ce sujet.

Merci par avance pour votre aide et vos conseils.

5 réponses


Peut être dans ta base de donnée tu n'as pas mis la même valeur par défaut en prod et en dev

Merci pour ta réponse,

dans les paramètres de ma base de données la valeur par défaut est bien '0' dans les deux cas, d'autant que j'ai fait le test de récuperer la base coté serveur distant sur mon serveur local, et l'erreur persiste coté local.

Par contre une précision, puisque je ne m'en était pas rendu compte avant, le problème ne se produit pas lors d'un nouvel enregistrement, et se produit uniquement lors d'un update.

Bizarre rien dans les beforeSave ?

Bonjour,

Si ça ne se produit que lors de l'édition, cela vient peut-être du formulaire d'édition justement. La valeur n'est peut-être pas la bonne, du coup cela viendrait peut être de ta méthode edit. Genre une association manquante

Bonjour à tous,

Grafikart -> C'est effectivement bizare, je n'ai rien dans les beforeSave, j'ai même désactivé toutes les règles de validation. J'utilise le TreeBehavior et c'est pour le parent_id que je rencontre le problème.

Connected -> Mon formulaire d'édition est le même que celui de création, il s'agit d'un champs de type "hidden" et losque je debug ma variable Post j'ai bien 0 en valeur,

Dans le debug 'Stack Trace' j'ai ceci :
<.... partie tronqué .....>

CORE/Cake/Model/Datasource/Database/Mysql.php line 415 → DboSource->execute(string)
'UPDATE mairie.pages SET name = 'Commune ', parent_id = NULL, titre = '', description = '', active = 1, id = 2 WHERE mairie.pages.id = '2''

CORE/Cake/Model/Model.php line 1912 → Mysql->update(Page, array, array)
object(Page) {
<.... partie tronqué .....>
useDbConfig => 'default'
useTable => 'pages'
id => '2'
data => array(
'Page' => array(
'name' => 'Commune ',
'parent_id' => null,
'titre' => '',
'description' => '',
'active' => '1',
'id' => '2'
)
)
<.... partie tronqué .....>

CORE/Cake/Model/Model.php line 1751 → Model->_doSave(array, array)
array(
'Page' => array(
'name' => 'Commune ',
'parent_id' => '0',
'titre' => '',
'description' => '',
'active' => '1',
'id' => '2'
)
)
array(
'validate' => true,
'fieldList' => array(),
'callbacks' => true,
'counterCache' => true,
'atomic' => true
)

APP/Controller/PagesController.php line 100 → Model->save(array)
array(
'Page' => array(
'name' => 'Commune ',
'parent_id' => '0',
'titre' => '',
'description' => '',
'active' => '1',
'id' => '2'
)
)

Merci encore pour les conseils que vous pourrez me donner.