Mysql CakePHP 3-使用正确的id保存关联数据
我是CakePHP的新手,正在编写活动日历。事件可以是单日事件,也可以是多天事件,因此我创建了一个事件表和一个日期表。保存事件时,日期会按预期保存在dates表中,但event_id字段始终保存为0,而不是实际的事件id 我认为事件和日期表之间的关系设置正确。Mysql CakePHP 3-使用正确的id保存关联数据,mysql,cakephp-3.0,Mysql,Cakephp 3.0,我是CakePHP的新手,正在编写活动日历。事件可以是单日事件,也可以是多天事件,因此我创建了一个事件表和一个日期表。保存事件时,日期会按预期保存在dates表中,但event_id字段始终保存为0,而不是实际的事件id 我认为事件和日期表之间的关系设置正确。 这是我为DatesTable准备的: $this->table('dates'); $this->displayField('id'); $this->primaryKey('id');
这是我为DatesTable准备的:
$this->table('dates');
$this->displayField('id');
$this->primaryKey('id');
$this->addBehavior('Timestamp');
$this->belongsTo('Events', [
'foreignKey' => 'event_id'
]);
这是我的EventsTable:
$this->table('events');
$this->primaryKey('id');
$this->addBehavior('Timestamp');
$this->belongsTo('Dates', [
'foreignKey' => 'event_id',
'joinType' => 'INNER'
]);
这是我的EventsController中的代码(WetKit是我们的插件之一):
如何获取要保存在Dates表中的事件id 事件稳定端的关联是错误的,它应该是一个
hasMany
(1:n
)关联,或者是一个hasOne
(1:1
)关联。考虑到你说的是几天,我想你是在寻找前者
另见
hasMany
(1:n
)关联或hasOne
(1:1
)关联。考虑到你说的是几天,我想你是在寻找前者
另见
$event = $this->Events->newEntity();
if ($this->request->is('post')) {
$event = $this->Events->patchEntity($event, $this->request->data, [
'associated' => 'dates'
]);
if ($this->Events->save($event)) {
$this->Flash->success(__('The form has been saved.'));
} else
$this->WetKit->flashError(__('The form could not be saved because error(s) were found.'), $event);
}