Bonjour,
Voila je rencontre un petit problème avec mon code.
Je voudrais enregistrer des donneées dans une table d'associations avec possiblité d'enregistrement multiple
Voila ce quel genre donné je veux enregistrer:
[
'user_id' => [
(int) 0 => '17',
(int) 1 => '18'
],
'recommendation_id' => '2'
]
Et voici ce que j'écris dans mon controller :
$usersRecommendation = $this->UsersRecommendations->newEntity();
if ($this->request->is('post')) {
$usersRecommendation = $this->UsersRecommendations->patchEntity($usersRecommendation, $this->request->getData());
$this->UsersRecommendations->save($usersRecommendation]);
}
J'obitens cette erreur
Cannot insert row, some of the primary key values are missing. Got (, ), expecting (user_id, recommendation_id)
Je voudrais savoir comment effectuer l'enregistrement dans mon cas.
Merci d'avance. :)
Normal car dans 'user_id' => [
(int) 0 => '17',
(int) 1 => '18'
],
les champs ne sont pas bien identifiés car le model attends les données du genre
$data =[
[
'user_id'=>'17',
'recommendation_id'=>'2'
],
[
'user_id'=>'18',
'recommendation_id'=>'2'
],
[
'user_id'=>'19',
'recommendation_id'=>'2'
]
]
$result = $this->UsersRecommendations->saveMany($data);
Il faut que tu boucles sur tes enregistrements pour les enregistrer un à un. C'est pas très intuitif, mais c'est comme ça.
Je te redirige vers la doc : Enregistrements Multiples