我的应用程序的目标是通过特许经营将特许发布安排到特许经营。
总部计划使用特定日期和时间发布带有文字和潜在图片的帖子。
它为数据库中的每个特许经营者创建带有所有必要信息的帖子(id,franchise_id,user_id,文本,图像,网络,post_id)
post_id包含一个与franchise_id完全相同的每行相同的ID。
当我添加一个帖子时,它运行良好。但是在编辑时,由于它获取帖子的ID,因此只会编辑与该ID匹配的帖子。
如果是特许经营,那就很好了,然后它将post_id更改为自定义值,并且将独立于其他值。
但是,当已登录HQ(superadmin)时,我希望他通过post_id编辑所有与选定的匹配的内容。
查询构建器不是我惯用的东西,有时我考虑过将其删除以用于标准SQL,但是如果存在,则是有原因的,因此,我希望您使用Cakephp的查询构建器来解决此问题。
public function edit($id = null){
$event = $this->Events->get($id);
if ($this->request->is(['post', 'put'])) {
$event = $this->Events->patchEntity($event, $this->request->data,['associated' => ['Networks'], ]);
if($isuper == 'true'){//if logged in user is superadmin
}else{
$event->user_id = $this->Auth->user('id');
}
if ($this->Events->save($event)) {
$this->Flash->success(__('your post has been updated'));
return $this->redirect(
[
'action' => 'index',
date('Y', $event->date->getTimestamp()),
date('m', $event->date->getTimestamp()),
$event->company_id
]
);
}
$this->Flash->error(__('unable to update your post'));
}
$this->set('event', $event);
$this->layout = 'ajax';
}
最佳答案
您可以尝试使用updateAll进行批量更新
就像是:
$this->Events->updateAll(
['field' => true], // whatever fields you are updating
['post_id' => 'some_id'] // the selected post_id
);
关于mysql - Cakephp Querybuilder:用与选定字段相同的字段更新行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44783690/