CakePHP-Fr.Org

Forum francophone du Framework CakePHP

Vous n'êtes pas identifié.

#1 24-09-2018 09:06:47

pascale86
Pitivier
Date d'inscription: 06-10-2011
Messages: 16

Error: [PDOException] SQLSTATE[23000]: Integrity constraint violation:

Bonjour,

Quand je réserve un stage pour une personne, j'ai ce message d’erreur dans le fichier error.log

Error: [PDOException] SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'stage_propose_id' cannot be null

Je ne comprend pas pourquoi vu que stage_propose_id est renseigné avant mon save dans la table inscriptions_stages

Et l'enregistrement se fait correctement dans la table Inscriptions_stages (table ou j'enregistre le stage réservé pour l'étudiant) et dans la table  StageProposes (mise à jour ds quotas)

Ci-dessous mon code :

public function recapitulatifstage($stage=null)
{
$this->loadModel('InscriptionStages');
       
        $inscriptionStage=$this->InscriptionStages->find('all',[ 'conditions'=>['InscriptionStages.etudiant_id' =>$this->request->session()->read('personne.id') ,'InscriptionStages.annee' =>$this->request->session()->read('campagne.0.annee'),
        'InscriptionStages.stage_propose_id'=> $this->request->params['pass'][0]]])
        ->toArray();
        $this->set('inscriptionStage',$inscriptionStage);
        if (count($inscriptionStage) ==1)
        {
            $message = 'Vous êtes déjà inscrit(e) pour ce stage';
            $this->set('message',$message);
        }
        else
        {
            // Sauvegarde dans la table inscription sports       
            $inscriptions = TableRegistry::get('InscriptionStages');
            $inscription = $inscriptions->newEntity();
            // $inscription->annee =$this->request->session()->read('etape.0.annee');
            $inscription->annee =$this->request->session()->read('campagne.0.annee');
            $inscription->etudiant_id= $this->request->session()->read('personne.id');
            $inscription->stage_propose_id= $this->request->params['pass'][0];
            // var_dump($this->request->params['pass'][0]);
            $quota_i_lp=$stagepropose_list[0]['quota_i_lp'];
            $quota_lp=$stagepropose_list[0]['quota_lp'];
            $quota_i_lc=$stagepropose_list[0]['quota_i_lc'];
            $quota_lc=$stagepropose_list[0]['quota_lc'];

                    if (($quota_i_lp < $quota_lp) && ($quota_i_lc ==0))
            {
                $inscription->liste= 'LP';
                $liste = 'liste principale';
                $inscription->validation=1;
                $inscription->rang=0;
                $quota_i_lp=$quota_i_lp+1;
            }
            else
            {
                if ($quota_lc !=0)
                {
                    if ($quota_i_lc < $quota_lc)
                    {
                        $inscription->liste= 'LC';
                        $liste = 'liste complémentaire';
                        $rang = $quota_i_lc+1;
                        $inscription->rang=$quota_i_lc+1;
                        $quota_i_lc=$quota_i_lc+1;
                        $this->set('rang',$rang);
                    }
                }
               
            }
            // debug ($inscription);exit();
        // Sauvegarde dans la table inscription sports   
            $inscription->created= Time::now();
            $inscriptions->save($inscription);
           
            // sauvegarde dans la table stage_propose des quotas modifiés
            $id=$stagepropose_list[0]['id'];
       
            $stageproposes = TableRegistry::get('StageProposes');
            $stagepropose = $stageproposes->get($id);
            $stagepropose->quota_i_lp=$quota_i_lp;
            if ($quota_i_lp==$quota_lp) { $stagepropose->cadenas=1;}
            $stagepropose->quota_i_lc=$quota_i_lc;
            $stageproposes->save($stagepropose);
    (...)}
}

Merci pour votre aide pour expliquer cette erreur
Pascale

Hors ligne

 

Pied de page des forums

Propuls� par FluxBB
Traduction par FluxBB.fr