Ich habe ein Problem beim Speichern von Daten mit hasMany Zuordnung. Es gibt zwei Tabellen wie Balg. Wenn ich es jetzt speichere, speichert es nur die Daten services table, speichert es aber nicht in der Tabelle service_times. Auch ich habe hier Vorlage und Controller-Code angegeben. Kann mir jemand vorschlagen, wie kann ich dieses Problem lösen.So speichern Sie HasMany Associations Daten in CakePHP 3.x
1) services table:
id | id | ...
1 | name | ...
2) service_times table
id | id | ...
1 | service_id | ...
2 | star_time | (type= time)
3 | end_time | (type= time)
Schablonenform:
<?= $this->Form->create($service) ?>
<fieldset>
<legend><?= __('Add Service') ?></legend>
<?php
echo $this->Form->input('name');
echo $this->Form->input('ServiceTimes.start_time');
echo $this->Form->input('ServiceTimes.end_time');
echo $this->Form->input('description');
?>
</fieldset>
<?= $this->Form->button(__('Submit')) ?>
<?= $this->Form->end() ?>
Service Controller
public function add(){
$service = $this->Services->newEntity($this->request->data, [
'associated' => ['ServiceTimes']
]);
if ($this->request->is('post')) {
if ($this->Services->save($service, ['associated' => ['ServiceTimes']])) {
pr($this->request->data);exit;
$this->Flash->success(__('The service has been saved.'));
return $this->redirect(['action' => 'index']);
} else {
$this->Flash->error(__('The service could not be saved. Please, try again.'));
}
}
//}
$this->set(compact('service'));
$this->set('_serialize', ['service']);
$this->viewBuilder()->theme('ThemeAdmin');
}
Ich würde vorschlagen, einen Blick auf die Dokumente, die zu Machen Sie sich klar, wie die zugehörigen Daten strukturiert sein müssen, um richtig gespeichert zu werden. ** http: //book.cakephp.org/3.0/en/views/helpers/form.html#creating-inputs-for-associated-data** | ** http: //book.cakephp.org/3.0/en/orm/saving-data.html#saving-hasmany-associations** – ndm