尝试编辑记录时重复输入

时间:2010-07-09 13:16:20

标签: cakephp model cakephp-1.3 duplicates

当我尝试编辑条目时......它在数据库中创建了一个重复的条目。

我确定在进入编辑表单时添加隐藏的id字段。

餐厅

RestaurantAttribute

RestaurantContact

这些是我正在使用的模型。

尝试重新初始化ID

$ this-> Restaurant-> id = $ this-> Restaurant-> id;

奇怪......在数据库中,额外的条目不存在......

但是在蛋糕中它显示..要清除缓存..仍在发生

http://harshamv.com/files/screenshots/2010-07-07_1524.png

http://harshamv.com/files/screenshots/2010-07-07_1525.png

我已经在这里发布了代码

http://forum.phpvideotutorials.com/showthread.php?p=81936

这是索引操作http://bin.cakephp.org/view/660872993

这是模型http://bin.cakephp.org/view/1228539627

http://harshamv.com/files/screenshots/2010-07-10_0937.png

SQL语句http://pastebin.com/EmdXmNeH

餐厅模型http://pastebin.com/W1sLiL7W

3 个答案:

答案 0 :(得分:1)

如果在phpmyadmin中只显示一条记录,并且在应用中显示多条记录,那么您的关系就会出现问题。

我首先要删除hasOne和belongsTo并查看。我之前已经有了这个,而且它总是很糟糕。

答案 1 :(得分:1)

我从MIRC的teknoid那里得到了答案。

在我的编辑视图中,我只设置了Restaurant.id。 在视图中没有设置相关模型的任何ID。

通过cake的约定,我们需要拥有db u update中任何记录的id。所以这是在相关模型中创建重复记录。

在索引操作中,因为存在相关模型的JOIN。由于相关模型中的重复条目,它创建了重复的条目

添加所有相关模型记录的ID。这解决了这个问题。

谢谢大家的时间。最后我设法让它发挥作用。

答案 2 :(得分:0)

检查ID列是否设置为主键以及AUTOINCREMENT。如果已设置,则无法插入重复的条目。

这个

$this->Restaurant->id = $this->Restaurant->id; 
注意。

编辑:

好的,我的错,我没有看到你在DB条目中说过没问题。然后:

  1. 检查$ this-> paginate()是否返回这些重复的条目 - print_r()。如果条目在那里重复,那么你正在弄乱模型中的关系。还要将debug选项更改为2,并查看生成的SQL。

  2. 如果条目在上面的检查中是唯一的,那么在显示$ restaurants的结果时,你在循环中搞乱了一些东西

  3. 我认为这更有可能是第一个建议