Мне нужно вставить данные из одной формы в две таблицы в CakePHP 3.0.
Я знаю, что не могу использовать saveAll()
, так как это устарело. Две таблицы: Users
и Addresses
Внешний ключ id(Users)
и user_id(Addresses)
В UsersTable
инициализация имеет $this->hasOne('Addresses');
, а в AddressesTable
$this->belongsTo('Users');
Это мой add.ctp:
<legend><?= __('Add User') ?></legend>
<?php
echo $this->Form->input('username');
echo $this->Form->input('password');
echo $this->Form->input('role', [
'options' => ['admin' => 'Admin', 'chinateam' => 'China Team', 'italianteam' => 'Italian team', 'reseller'=>'Reseller']
]);
echo $this->Form->input('Address.address');
?>
UserController.php
public function add() {
$this->log('Quote Controller --> Add Method...1');
$this->log($this->request->data);
$user = $this->Users->newEntity();
if ($this->request->is('post')) {
$user = $this->Users->patchEntity($user, $this->request->data, ['associated' => ['Addresses']]);
if ($this->Users->save($user)) {
$this->Flash->success('The user has been saved.');
//return $this->redirect(['action' => 'index']);
} else {
$this->Flash->error('The user could not be saved. Please, try again.');
}
}
$this->set(compact('user'));
$this->set('_serialize', ['user']);
Этот сценарий вставляет данные в таблицу Users
, но не в таблицу Addresses
.
user_id
, который соответствует пользователямid
, я подозреваю, что это должно работать наоборот), то это, вероятно, что-то для новый вопрос. - person ndm   schedule 14.04.2015