保存数据,如何将数据应用于所有记录?

时间:2012-04-11 10:18:47

标签: cakephp cakephp-1.3 cakephp-2.0

我如何保存以下内容;

我希望前4个项目适用于要保存的所有"产品",因为这些数据位于我的表格顶部,并且"全球"对于保存的产品,我如何告诉cakephp将其保存到每个产品中,还是我必须创建一个foreach循环并手动插入数据?

每种产品的全球数据。

[discount_id] => 17
[range_id] => 21
[category_id] => 6
[user_id] => 104
Array
(
    [Product] => Array
        (
            [discount_id] => 17
            [range_id] => 21
            [category_id] => 6
            [user_id] => 104
            [0] => Array
                (
                    [product_code] => ffff
                    [colour] => red
                    [lead_time_weeks] => 
                    [description] => 
                    [height] => 11111
                    [width] => 22222
                    [depth] => 
                    [price] => 
                    [discount] => 50
                    [discounted_price] => 
                    [quantity] => 
                )

            [1] => Array
                (
                    [product_code] => fgfgfggf
                    [colour] => red
                    [lead_time_weeks] => 
                    [description] => 
                    [height] => 123
                    [width] => 123
                    [depth] => 
                    [price] => 
                    [discount] => 50
                    [discounted_price] => 
                    [quantity] => 
                )

        )

)

在控制器中保存方法

$this->Product->saveAll($this->request->data['Product']

1 个答案:

答案 0 :(得分:1)

我个人会使用foreach循环,saveAll用于保存相关数据。 e.g。

foreach($this->request->data['Product'] as $product){
  // Don't want to add the generic items
  if(is_array($product)){
    $newProduct = $this->Product->create();
    $newProduct['Product'] = $product; // To save added them seperately
    // Then add the generic items into the array
    $newProduct['Product']['discount_id'] = $this->request->data['Product']['discount_id']; 
    etc...
    $this->Product->save($newProduct);
  }
}