お世話になります。
Cakephp3系でHabtmデータの追加・更新・削除をしたいと思っております。
追加、削除は実装出来るのですが、更新がうまくできずに困っております。
UsersTable.php
PHP
1 $this->belongsToMany('Labels', [ 2 'foreignKey' => 'user_id', 3 'targetForeignKey' => 'label_id', 4 'joinTable' => 'labels_users' 5 ]);
UsersController.php
PHP
1 if ($this->request->is(['patch', 'post', 'put'])) { 2 $data = $this->Users->patchEntity($data, $this->request->data, ['associated' => ['LabelsUsers']]); 3 if ($this->Users->save($data)) { 4 $this->Flash->success(__('保存完了しました。')); 5 return $this->redirect(['action' => 'index']); 6 } 7 $this->Flash->error(__('保存に失敗しました。もう一度お試しください。')); 8 }
template
PHP
1foreach ($indicators as $i => $indicator) { 2 $label = $data->get_label($data->id, $indicator->id); 3 if (!empty($label)) { 4 echo $this->Form->input('labels.' . $i . '.id', [ 5 'type' => 'hidden', 6 'value' => $label->id 7 ]); 8 } 9 echo $this->Form->input('labels.' . $i . '.user_id', [ 10 'type' => 'hidden', 11 'value' => $data->id 12 ]); 13 echo $this->Form->input('labels.' . $i . '.label_id',[ 14 'type' => 'select', 15 'options' => $list 16 ]); 17}
saveとdeleteはうまくできているのですが、
idを入れた際に、更新されず、エラーがかえってきます。
PHP
1Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '***' for key 'user_id'
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/04 01:13