Я пытаюсь пропатчить Entity с помощью таблицы соединений, но не могу получить ее для сохранения связанных записей, и я думаю, что у меня правильный код бэкэнда, но я не уверен в том, как должен выглядеть код веб-интерфейса. .
Вот сценарий, у меня три таблицы
Таблица ГК
id int
title string
Таблица племен
id int
name string
Таблица LedgersTribes
id int
ledger_id int
tribe_id int
Вот мой код бэкэнда
public function ledgerSave($id = null)
{
$this->loadModel('Ledgers');
$ledger = $this->Ledgers->get($id, [
'contain' => ['LedgersTribes']
]);
if ($this->request->is(['patch', 'post', 'put'])) {
$ledger = $this->Ledgers->patchEntity($ledger, $this->request->getData(), [
'associated' => ['LedgersTribes']
]);
if ($this->Ledgers->save($ledger)) {
$this->Flash->success(__('The ledger has been saved.'));
return $this->redirect($this->referer());
}
$this->Flash->error(__('The ledger could not be saved. Please, try again.'));
}
$this->set(compact('ledger'));
}
Вот соответствующий код внешнего интерфейса
<?= $this->Form->control('tribe_id[]', ['type' => 'checkbox', 'label' => false, 'class' => 'minimal', 'value' => $tribe->id]) ?>
У меня вопрос, каким должно быть имя поля для tribe_id, идея в том, что у меня есть список флажков, и пользователь проверяет пару полей, а затем эти tribe_id вставляются в таблицу LedgersTribes с помощью ledger_id
Есть идеи, как мне это сделать?
РЕДАКТИРОВАТЬ: Вот скриншот формы
![enter image description here](https://i.stack.imgur.com/OgyAo.png)
Я просмотрел следующие ссылки, и ни одна из них не ответила на мой вопрос ...
CakePHP 3: Ошибка сохранения связанной модели
Сохранение связано в CakePHP 3 не работает
Как сохранить связанные данные соединения в cakephp 3.x
CakePHP 3 не может сохранить связанную модель
Cakephp 3 - Сохранить связанную принадлежность ToMany (joinTable)