Я использую CakePHP 3.x, Как вставить значения в связанные таблицы.
контроллер:
$member = TableRegistry::get('Members');
$members = $member->newEntity([
'associated' => ['MembersRetailers']
]);
if ($this->request->is('post')) {
$members = $member->newEntity($this->request->data(), [
'associated' => ['MembersRetailers']
]);
$member->save($members);
}
Модель (участники):
public function initialize(array $config) {
parent::initialize($config);
$this->table('members');
$this->displayField('member_id');
$this->primaryKey('member_id');
$this->addBehavior('Timestamp');
$this->hasMany('MembersRetailers', [
'className' => 'MembersRetailers',
'foreignKey' => 'member_id',
]);
}
Посмотреть:
$session = $this->request->session();
$auth_user[] = $session->read('auth');
echo $this->Form->create($members);
// ... some input fields (not related to the question)
echo $this->Form->input('MembersRetailers.retailer_id', [
'required' => false,
'value'=>$auth_user[0]['retailer_id'],
'type' => 'hidden']);
echo $this->Form->button('Create Account', ['class' => 'login-btn btn']);
echo $this->Form->end();
Значения вставляются в members
стол, но не в members_retailer
Tabel. В members_retailer
есть два поля member_id и идентификатор продавца
Значение retailer_id не является проблемой, но идентификатор элемента таблицы розничного продавца принадлежит таблице членов!
Задача ещё не решена.
Других решений пока нет …