2015-01-08 177 views
0

我有兩個表:productfilters和productfiltervalues。WPMVC:給定多個記錄,數據庫中只保存一個記錄集

在第一個表我有一個像,書籍,電子記錄,服裝等

在第二個表,有相關的在第一表中的記錄,即,當我們編輯書籍,我們可以添加值的記錄動態的,被'書籍'的'id'所引用,如'小說','歷史','詩歌'等。同樣,我們也有'電子'和'服飾'的不同數據。

現在,當我一次編輯兩個表並將它們保存爲一次單擊時,第一個表記錄將保存爲我希望的狀態,但第二個表記錄被截斷並且最後一組記錄保存在數據庫中。

對於這種功能,我已經覆蓋了管理控制器方法'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

只添加最後一個記錄。如何解決這個問題?任何瘋狂的猜測?謝謝..

+0

也許某些代碼可能會有所幫助。 – vaso123

回答

0

你的問題是在這裏:

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

所以while循環,你只是替換值(我認爲), 它必須是這樣的:

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

我不是WP專家,並且現在沒有安裝WP,只是爲了幫助你解決這個問題。 希望可以幫到你

+0

感謝Kim的回覆,但'add'也只會調用create_or_save()方法。我幾乎可以找到它。很快會回來的答案。再次感謝。 –

+0

可以在foreach之前做'var_dump($ this-> params ['data'] [$ this-> model-> name] ['productfiltervalues'])'嗎? – Alex

+0

謝謝Kim。我解決了這個問題檢查答案。 –

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++; 

並且這導致了錯誤。

我只是全部,如果條件取出,並用

clone = html; 

取代它,現在它工作正常。謝謝。