В редактируемом шаблоне я создал 2 формы. Первый, чтобы редактировать запись из «Table1» и вторая форма, чтобы добавить запись в связанную (ownTo) таблицу «Table2». Я не хочу редактировать связанную запись, но добавляю новую в Table2 и изменяю ключ привязки записи с 'Table1'.
В контроллере я использую patchEntity (), но таким образом редактируется исходная связанная запись в «Table2».
Код для второй формы выглядит следующим образом.
<?= $this->Form->create($machine, ['url' => ['action' => 'edit_foto']]);?>
<?= $this->Form->controls([
'id' => ['type' => 'hidden'],
'foto.omschrijving' => [
'type' => 'text',
'label' => __('naam van de machine'),
'value' => $result->type_machine
], []);?>
<?= $this->Form->button(__('save'), ['type' => 'submit']); ?>
<?= $this->Form->end(); ?>
В контроллере для Table1 я использую что-то вроде этого.
public function editFoto($id) {
$data = $this->getRequest()->getData();
$machine = $this->Machines->get($id, [
'contain' => [
'Foto'
]
]);
if ($this->request->is([
'patch',
'post',
'put'
])) {
$machine = $this->Machines->patchEntity($machine, $data);
if ($this->Machines->save($machine)) {
$this->Flash->success(__('Machine {naam} has been saved.', [
'naam' => $machine['naam']
]));
return $this->redirect(['action' => 'edit', $id]);
}
}
}
Как я могу запретить контроллеру редактировать исходную запись и вместо этого принудительно добавить новую запись в 'Table2' и изменить ключ связывания в 'Table1'?
Помощь очень ценится.
добавлена информация:
данные, отправленные по форме, выглядят так:
[
'id' => '87',
'foto' => [
'omschrijving' => 'WAKER 135 - ter - testje',
'foto' => [
'tmp_name' => 'C:\xampp\tmp\php6CFD.tmp',
'error' => (int) 0,
'name' => 'MAKITA DTD153RTJ accuschroevendraaier.jpg',
'type' => 'image/jpeg',
'size' => (int) 188971
],
'dir_id' => '5c9dd428cc4ef'
]
]