WP MVC:如何编辑和保存涉及多个表的记录

WP MVC : How to edit and save records involving multiple tables

我有两个 table:productfilters 和 productfiltervalues。

在第一个 table 中,我有书籍、电子产品、服装等记录

在第二个table中,有与第一个table中的记录相关的记录,即当我们编辑书籍时,我们可以动态添加由'id'引用的值'Books'、'Fiction'、'History'、'Poetry' 等。同样,我们也有 'Electronics' 和 'Apparels' 的不同数据。

现在,当我一次编辑两个 table 并单击保存它们时,第一个 table 记录按我的意愿保存,但第二个 table 记录是复制,原始值不变。

为了这个功能,我重写了管理控制器方法'create_or_save()',这很麻烦。我已经给出了下面的代码。

非常感谢任何帮助。谢谢。

if ($this->model->save($this->params['data'])) {
                $this->load_model('ProductFilterValue');
                if(isset($this->params['data'][$this->model->name]['product_filter_value']) && !empty($this->params['data'][$this->model->name]['product_filter_value'])){
                    foreach($this->params['data'][$this->model->name]['product_filter_value'] as $productfiltervalue){
                                $this->ProductFilterValue->save($productfiltervalue);
                    }
                }
                $this->flash('notice', 'Successfully saved!');
                $url = MvcRouter::admin_url(array('controller' => $this->name, 'action' => $this->_redirect_action, 'id' => $id));
                $this->redirect($url);
            }

我正在使用带有 WP MVC 的 wordpress 4.1。

我找到了答案。 ID没有绑定,就是这个导致问题的原因。所以,我像这样修改了 foreach 语句:

foreach($this->params['data'][$this->model->name]['productfiltervalues'] as $productfiltervalue){
    $productfiltervalue['group_id'] = $this->params['data'][$this->model->name]['id'];
        if($this->params['data'][$this->model->name]['id']){
            $this->ProductFilterValue->save($productfiltervalue);
        }
}

之前ID是2个,现在ID是和原始父记录绑定的,可以正常保存。

谢谢大家