2011-12-22 87 views
0

我似乎無法讓我的編輯類工作。我的驗證工作正常,當我點擊編輯按鈕後使用調試($ this-> data)時,所有顯示的數據都是完美的,但沒有更新表格。CakePHP SaveAll不工作

這是我的編輯類。

這裏是視圖。

<?php 

echo $this->Form->create('Bookmark', array(
    'action' => 'edit', 
    'inputDefaults' => array(
     'class' => 'input-text' 
    ) 
)); 
echo $this->Form->inputs(array(
    'legend' => false, 
    'fieldset' => true, 
    'Bookmark.title', 
    'Url.url', 
    'Bookmark.id' => array('type' => 'hidden'), 
    'Url.id' => array('type' => 'hidden') 
)); 
echo $this->Form->button('Edit'); 
echo $this->Form->end(); 

?> 

我更新了我的編輯類,但仍然沒有解決我的錯誤。什麼修正了我添加到視圖中的兩個隱藏字段。

'Bookmark.id' => array('type' => 'hidden'), 
    'Url.id' => array('type' => 'hidden') 

不太清楚爲什麼,但我看了一些其他的在線編輯視圖,試過這個,現在它的工作。

回答

1

嘗試下面這個頁面:http://book.cakephp.org/2.0/en/models/saving-your-data.html

在蛋糕2.0.x的您應該使用$this->request->data,儘管這可能不是問題。你也會看到他們沒有手動設置ID,但允許表單做到這一點。

如果按照本書的建議進行嘗試,但仍然無效,請將您的新嘗試作爲編輯發佈到此問題。

+0

我已經嘗試過請求,並多次閱讀該文檔。結果與請求部分相同或不相同。當我刪除$ this-> Bookmark-> id = $ id;表單停止預填充表單域。 – 2011-12-22 07:05:42

+0

我還應該補充說,如果我使用save而不是saveAll,它將保存標題,但不保存Url。 SaveAll不保存任何內容。 – 2011-12-22 07:07:59

+0

你不應該需要這個$ id行 - 如果你這樣做,這是你的第一個線索,問題可能出在哪裏。 – Dave 2011-12-22 13:40:02

0

每次發生這種情況都是因爲驗證錯誤。檢查驗證錯誤是這樣的

echo debug($this->ModelName->invalidFields()); 
+1

不需要在這裏回顯。只需調試。 – Loolooii 2014-11-25 12:30:49