我的应用程序的目标是通过特许经营将特许发布安排到特许经营。
总部计划使用特定日期和时间发布带有文字和潜在图片的帖子。
它为数据库中的每个特许经营者创建带有所有必要信息的帖子(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/

10-13 03:15