【发布时间】:2016-09-23 12:15:37
【问题描述】:
在当前表中保存数据后,我正在尝试更新关联表中的一行。假设我有两个表,列表和队列。队列有一个外键listing_id。所以我已经成功保存了一个新的队列,其中当然也包含了一个listing的id,怎么还能更新Listings表上Listing的状态字段,比如从“暂停”到“排队”?
看看我的代码是什么样子的
$queue = $this->Queues->newEntity();
$queue->listing_id = $this->request->data['id'];
$queue->user_id = $this->Auth->user('id');
if ($this->Queues->save($queue)) {
$this->response->body("success");
$this->redirect(array('controller'=>'ListingsController','action' => 'changeStatus', $this->request->data['id'], "queued"));
}
协会
列表表格
$this->table('listings');
$this->displayField('name');
$this->primaryKey('id');
$this->addBehavior('Timestamp');
$this->belongsTo('Users', [
'foreignKey' => 'user_id',
'joinType' => 'INNER'
]);
排队表
$this->table('queues');
$this->displayField('id');
$this->primaryKey('id');
$this->belongsTo('Listings', [
'foreignKey' => 'listing_id',
'joinType' => 'INNER'
]);
$this->belongsTo('Users', [
'foreignKey' => 'user_id',
'joinType' => 'INNER'
]);
【问题讨论】:
-
尝试从saving associated data上的文档开始。
-
请先说明您的模型关联。您可以在创建
newEntity()时简单地加载关联并保存两个模型数据。 -
感谢您的回复。当我说我一遍又一遍地阅读该文档时,请相信我。就是想不通。我对框架有点陌生,我知道它最终会成为我所缺少的简单东西。请问您所说的模型关联是什么意思,让我用我认为您的意思来更新问题。谢谢
-
$queues 对象是什么样的?如果构建正确,cake 会自动负责更新关联。
-
Queues 表只有 3 个字段:id、user_id、listing_id
标签: php cakephp relationship cakephp-3.0