salut je ne sais pas si c'est moi qui met mal mes informations j'ai envi de faire un saveMany avec mes données sous cette forme mais ça ne fonctionne pas cela me génère des erreurs de foreign key plutot je ne comprends rien du tout voici la structure des données a sauvegardées:

array(
    (int) 0 => array(
        'note_obtenu' => '4',
        'matieres_id' => '7',
        'sequences_id' => '1',
        'filieres_id' => '18',
        'personnels_id' => '74',
        'students_id' => (int) 52,
        'enseignements_id' => '1',
        'cycles_id' => '31'
    ),
    (int) 1 => array(
        'note_obtenu' => '12',
        'matieres_id' => '7',
        'sequences_id' => '1',
        'filieres_id' => '18',
        'personnels_id' => '74',
        'students_id' => (int) 55,
        'enseignements_id' => '1',
        'cycles_id' => '31'
    ),
    (int) 2 => array(
        'note_obtenu' => '4',
        'matieres_id' => '7',
        'sequences_id' => '1',
        'filieres_id' => '18',
        'personnels_id' => '74',
        'students_id' => (int) 51,
        'enseignements_id' => '1',
        'cycles_id' => '31'
    ),
    (int) 3 => array(
        'note_obtenu' => '15',
        'matieres_id' => '7',
        'sequences_id' => '1',
        'filieres_id' => '18',
        'personnels_id' => '74',
        'students_id' => (int) 53,
        'enseignements_id' => '1',
        'cycles_id' => '31'
    ),
    (int) 4 => array(
        'note_obtenu' => '18',
        'matieres_id' => '7',
        'sequences_id' => '1',
        'filieres_id' => '18',
        'personnels_id' => '74',
        'students_id' => (int) 56,
        'enseignements_id' => '1',
        'cycles_id' => '31'
    ),
    (int) 5 => array(
        'note_obtenu' => '19',
        'matieres_id' => '7',
        'sequences_id' => '1',
        'filieres_id' => '18',
        'personnels_id' => '74',
        'students_id' => (int) 54,
        'enseignements_id' => '1',
        'cycles_id' => '31'
    )
)

voici le code pour faire le save:

$this->Note->save($donne, array('fieldList'=>array('note_obtenu','sequences_id','filieres_id','matieres_id','personnels_id','cycles_id','enseignements_id','students_id')));

j'ai oublié quelques chause?

11 réponses


Bonjour.
Mets plutôt saveMany que save, non ?

romses
Auteur
$this->Note->saveMany($donne, array('fieldList'=>array('note_obtenu','sequences_id','filieres_id','matieres_id','personnels_id','cycles_id','enseignements_id','students_id')))

cétais une erreur de saisit

Si c'est pour faire des modifications sur des enregistrements, la clé primaire est nécessaire (avec son index bien sur).

romses
Auteur

voici l'erreur génégé :

Error: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`gestionetablissement`.`notes`, CONSTRAINT `fk_notes_sequences1` FOREIGN KEY (`sequences_id`) REFERENCES `sequences` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION)

mois je ne sais pas si la valeur de la sequence disparait ou est vide après les enregistrements

romses
Auteur

c'est pas pour faire des modifications je veus juste les créer ses enregistrements dans ma table de la BD, je ne comprends pas le pourquoi cela me génère une erreur de violation de clé et pourquoi cela n'enregistre pas

Vérifies tes associations, tu as du faire une erreur de définition.
Exemple : Relation entre 2 tables avec contraintes.

romses
Auteur

Merci Lartak, je viens de faire un constat en supprimant la relation (plus précisement le champ séquences_id), cela fonctionne bien j'arrive sauvegardé mes post, mais lorsque je remet la relation cela ne fonctionne plus toujours l'erreur de violation par contre dans mon model Sequence j'ai ceci:

public $hasMany = array(
        'Note' => array(
                'className'  =>  'Note',
                'foreignKey' =>  'sequences_id',
                'order'      =>   'Note.note_obtenu ASC',
                'fields'     =>   'note_obtenu',
                'dependent' =>   true
                )

        );

et dans le model Note j'ai ceci:

public $belongsTo = array(
'Sequence' => array(

                'className'  => 'Sequence',
                'foreignKey' => 'sequences_id',
                'fields'      => 'numero_sequence'
            )),

la je suis completement perdu

C'est pourtant simple à comprendre, tu as fait une manipulation, par la suite ça fonctionnait correctement et lorsque tu annules cette manipulation, tu as à nouveau l'erreur.

romses
Auteur

oui sauf que je parcours depuis mes models pour trouver l'erreurs je ne trouve pas tt est clean a vu d'oeil

Au contraire, tout n'est pas clean, puisque lorsque tu supprimes la ligne l'erreur ne se manifeste plus et ta requête fonctionne bien.
Mais l'erreur revient lorsque tu remets la ligne.
Je ne vois vraiment pas ce que tu ne comprends pas, vu que l'erreur ne survient que lorsque cette ligne est présente dans ton association.

romses
Auteur

je suis entrin de me cassé la tête la dessus pour trouver cette insecte d'erreur triviale merci encors Lartak