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是和原始父记录绑定的,可以正常保存。
谢谢大家
我有两个 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是和原始父记录绑定的,可以正常保存。
谢谢大家