首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >优化产品添加操作

优化产品添加操作
EN

Stack Overflow用户
提问于 2013-01-22 18:42:35
回答 1查看 37关注 0票数 0

我有一个add操作表单ProductsController,其中有许多价格取决于大小。我正试着先保存产品,然后在每个循环中保存价格。

一些saveAllsaveAssociated是如何无法工作的。

代码语言:javascript
运行
复制
public function add() {
        if ($this->request->is('post')) {
            $this->Product->create();
            $product = $this->Product->save($this->request->data);

            if (!empty($product)) {
                $product_id = $this->Product->getInsertID();
                $prices = $this->request->data['Product']['price'];

                foreach ($prices as $price) {
                    $price['product_id'] = $product_id;
                    $this->Product->Price->save($price);
                     $this->Product->Price->id = false;
                }

                $this->Session->setFlash('The product has been saved.');
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash('Unable to add the product.');
            }
        }
    }

模型看起来像

代码语言:javascript
运行
复制
class Product extends AppModel {        
   ...
   public $hasMany = array(
      'Price' => array(
              'className' => 'Price',           
                 )
   );


class Price extends AppModel {

    public $belongsTo = array(
        'Product' => array(
            'className' => 'Product',
            'foreignKey' => 'product_id', 
        )
    );
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-22 20:31:47

您可以按照documentation使用saveAssociated()

但您的视图应如下所示:

代码语言:javascript
运行
复制
echo $this->Form->create('Product', array('action' => 'add'));
    echo $this->Form->input('Product.name', array('label' => 'Name'));
    echo $this->Form->input('Product.description', array('label' => 'Description'));

    echo $this->Form->input('Price.0.amount', array('label' => 'Amount'));
    echo $this->Form->input('Price.0.price', array('label' => 'Price'));
echo $this->Form->end('Add');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14456680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档