2011-12-22 83 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