WPMVC:给定多个记录,只有一个记录集保存在数据库中

时间:2015-01-08 11:40:23

标签: php mysql wordpress

我有两个表:productfilters和productfiltervalues。

在第一张表格中,我有书籍,电子产品,服饰等记录。

在第二个表格中,有与第一个表格中的记录相关的记录,即,当我们编辑图书时,我们可以动态添加值,这些值由“id”' ' Books' like' Fiction',' History',' Poetry'同样,我们对“电子产品”提供了不同的数据。和'服装'太

现在,当我一次编辑两个表并一次保存它们时,第一个表记录将按照我的意愿保存,但第二个表记录被截断,最后一组记录保存在数据库中。

对于此功能,我已覆盖管理员控制器方法' create_or_save()'它会制造麻烦。我已经给出了以下代码。

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

if ($this->model->create($this->params['data'])) {
    $id = $this->model->insert_id;
    $this->load_model('ProductFilterValue');
        if(isset($this->params['data'][$this->model->name]['productfiltervalues']) && !empty($this->params['data'][$this->model->name]['productfiltervalues'])){
            foreach($this->params['data'][$this->model->name]['productfiltervalues'] as $productfiltervalue){
                $productfiltervalue['group_id'] = $id;
                $this->ProductFilterValue->save($productfiltervalue);
                }
            }

我添加了两个截图来理解这一点。 1.添加2.编辑

Records are added here

Edit to see the database

仅添加最后一条记录。怎么解决这个?任何狂野的猜测?感谢..

2 个答案:

答案 0 :(得分:0)

你的问题在这里:

$this->ProductFilterValue->save($productfiltervalue);

所以while循环你只是替换值(我认为), 它必须是这样的:

$this->ProductFilterValue->add($productfiltervalue);

我不是WP专家,现在没有安装WP,只是为了帮助你解决这个问题。 希望能帮助你

答案 1 :(得分:0)

我解决了这个问题。我在添加/编辑表单的常见部分布局中给出了以下代码。

var clone ='';

        if(jQuery('.filter-input-html:first').length > 0)
        {
            clone = jQuery('.filter-input-html:first').clone();     
        }
        else
        {
            clone = html;
        }

        jQuery("#filter-value").append(clone);
        filter_value_row++;

这导致错误。

我刚删除了总if条件并将其替换为

clone = html;

现在它工作正常。感谢。