0

以下を保存するにはどうすればよいですか。

このデータがフォームの上部にあり、保存される製品に「グローバル」であることを考えると、最初の 4 つの項目をすべての「保存する製品」に適用する必要があります。または、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']
4

1 に答える 1

1

私は個人的にforeachループを使用します。saveAllは関連データを保存するためのものです。例えば

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);
  }
}
于 2012-04-11T10:30:39.797 に答える