我有两个表: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.编辑
仅添加最后一条记录。怎么解决这个?任何狂野的猜测?感谢..
答案 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;
现在它工作正常。感谢。