0

我正在制作类似在线餐厅菜单的东西,管理员可以在其中编辑它。

数据库如下所示:

CATEGORIES
id   |  name
1    | Western Food

FOODS
id   | category_id | name
1    |      1      | Tenderloin
2    |      1      | Fish Chips

管理员编辑菜单后,它会读取所有输入并将它们作为 AJAX 请求发布。数据(简化)如下所示:

data: [
    {Category: {id: 1, name:'Western Food'} },
    {Food: [
        {id: 1, category_id: 1, name: 'Tenderloin'}, //Have ID = edit old entry
        {category_id: 1, name: 'Burger'}, //Don't have ID = create new entry
    ]}
]

CakePHP 中的函数在根据数据中是否存在列saveAll()自动检测是编辑还是创建新条目方面做得很好。id

正如你在上面看到的,起初我们有两种食物。但是新的 POST 数据不包含 ID=2 的食物,所以这意味着食物被删除了。我该如何删除它

是否有内置功能来检测哪些条目没有被修改

抱歉,问题很长。如果它让您感到困惑,请要求澄清。

谢谢

4

1 回答 1

0

我通过在保存新条目之前简单地删除所有旧条目来解决它。

这可能不是最佳做法,但是......哦,好吧。

于 2013-06-18T03:58:36.837 回答