2011-01-20 61 views
1

我有一个类别产品多对多的关系。产品创建时,选择一个或多个类别,然后保存产品。这工作正常,连接表正确填充。问题是当我去编辑产品时,我可以添加更多类别,更改它们等等。当我试图保存时,问题就出现了,它失败了。CakePHP更新多对多资源

,我使用保存行:

$this->Product->saveAll($this->data) 

$这个 - >产品展示 - > ID正确填充和$这个 - 调试>数据给了我这样一个数组:

Array(

    [Product] => Array 
    (
     [0] => 17 
    ) 

    [Category] => Array 
    (
     [0] => Array 
      (
       [0] => 85 
      ) 

     [1] => Array 
      (
       [0] => 96 
      ) 

    ) 

) 

我不知道为什么它不保存,因为我找不到任何地方的错误的任何细节。

任何帮助非常感谢。

回答

0

正如raultm所说,结构有点不对,但事实证明这是模型中的验证。名称和描述字段被设置为不允许为空,并且在结构中我没有传入这些字段(不知道您必须进行更新)。通过添加缺少的字段并正确命名字段中的字段,即id,名称和说明,这工作。

1

我觉得这个结构是错误的。如果您正在编辑,产品的'id'字段在哪里?

[Product] => Array 
(
    [id] => 17 
) 

我在应用程序中这样做。我明天会看看(今天我不能查看源代码),但我认为id是问题所在。

+0

干杯,你说得对,结构是错的,但它也被验证。 – chvck 2011-01-24 11:42:14