2011-12-22 24 views
0

編集クラスが動作しないようです。私の検証は正常に動作し、編集ボタンを押した後にデバッグ($ this-> data)を使用すると、表示されたデータはすべて完璧ですが、テーブルは更新されません。CakePHP SaveAll not working

私の編集クラスです。

ここはビューです。

<?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(); 

?> 

編集クラスを更新しましたが、それでもエラーは修正されませんでした。ビューに追加した2つの非表示フィールドが修正されました。

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

なぜ、私は他の編集ビューをオンラインで見て、これを試してみました。このページ次

答えて

1

試してみてください。それはおそらく問題ではないもののケーキの2.0.xではhttp://book.cakephp.org/2.0/en/models/saving-your-data.html

あなたは、$this->request->dataを使用する必要があります。また、IDを手動で設定するのではなく、フォームにそのIDを設定することもできます。

この本の示唆どおりに試してもそれでも問題が解決しない場合は、この新しい質問を編集してください。

+0

私はリクエストして試してみたことがあります。結果は依頼部の有無にかかわらず同じです。 $ this-> Bookmark-> id = $ idを削除すると、フォームはフォームフィールドの事前入力を停止します。 –

+0

saveAllの代わりにsaveを使用すると、タイトルは保存されますが、URLは保存されません。 SaveAllは何も保存しません。 –

+0

その$ id行は必要ありません。そうした場合、問題がどこにあるのかという最初の手がかりになります。 – Dave

0

これは私に起こるたびに検証エラーが原因でした。このような検証エラーがないかどうかを確認してください

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

ここにエコーする必要はありません。ちょうどデバッグ。 – Loolooii