cakephp:saveAll无效

时间:2013-03-09 06:41:36

标签: php cakephp-2.0

saveAll不起作用可以帮助我找出问题所在。我已经包含了控制器的动作,传递给saveAll的数组及其模型。

包含saveAll的控制器操作如下所示 -

public function add_customer_order() {
    if ($this->request->is('post')) {
                      -
                      -
                      -
                      -
                   $this->CustomerOrderItem->create();
                   if ($this->CustomerOrderItem->saveAll($customer_order_item)) {
                        $this->Session->setFlash('The customer order Items has been saved successfully.', 'default/flash_success');
                     }
                else {
                    $this->Session->setFlash('The customer order Items not been saved successfully.', 'default/flash_success');
                }
    }

}

数组$ customer_order_item如下所示 -

array(
    'CustomerOrderItem' => array(
        (int) 0 => array(
            'id' => '',
            'quantity' => '400',
            'unit_cost' => '77',
            'pending_quantity' => '400',
            'packaging_configuration_quantity' => '20',
            'exercise_duty_id' => '0',
            'tax_id' => '5',
            'customer_order_id' => '',
            'master_article_id' => '22'
        ),
        (int) 1 => array(
            'id' => '',
            'quantity' => '200',
            'unit_cost' => '77',
            'pending_quantity' => '200',
            'packaging_configuration_quantity' => '20',
            'exercise_duty_id' => '0',
            'tax_id' => '5',
            'customer_order_id' => '',
            'master_article_id' => '25'
        ),
        (int) 2 => array(
            'id' => '',
            'quantity' => '400',
            'unit_cost' => '77',
            'pending_quantity' => '400',
            'packaging_configuration_quantity' => '20',
            'exercise_duty_id' => '1',
            'tax_id' => '5',
            'customer_order_id' => '',
            'master_article_id' => '23'
        ),
        (int) 3 => array(
            'id' => '',
            'quantity' => '200',
            'unit_cost' => '77',
            'pending_quantity' => '200',
            'packaging_configuration_quantity' => '20',
            'exercise_duty_id' => '1',
            'tax_id' => '5',
            'customer_order_id' => '',
            'master_article_id' => '24'
        ),
        (int) 4 => array(
            'id' => '',
            'quantity' => '200',
            'unit_cost' => '77',
            'pending_quantity' => '200',
            'packaging_configuration_quantity' => '20',
            'exercise_duty_id' => '1',
            'tax_id' => '5',
            'customer_order_id' => '',
            'master_article_id' => '27'
        )
    )
)

该模型如下所示 -

<?php
App::uses('AppModel', 'Model');
/**
 * CustomerOrderItem Model
 *
 * @property CustomerOrder $CustomerOrder
 * @property MasterArticle $MasterArticle
 */
class CustomerOrderItem extends AppModel {

/**
 * Validation rules
 *
 * @var array
 */
    public $validate = array(
        'customer_order_id' => array(
            'numeric' => array(
                'rule' => array('numeric'),
                //'message' => 'Your custom message here',
                //'allowEmpty' => false,
                //'required' => false,
                //'last' => false, // Stop validation after this rule
                //'on' => 'create', // Limit validation to 'create' or 'update' operations
            ),
        ),
        'master_article_id' => array(
            'numeric' => array(
                'rule' => array('numeric'),
                //'message' => 'Your custom message here',
                //'allowEmpty' => false,
                //'required' => false,
                //'last' => false, // Stop validation after this rule
                //'on' => 'create', // Limit validation to 'create' or 'update' operations
            ),
        ),
    );

    //The Associations below have been created with all possible keys, those that are not needed can be removed

/**
 * belongsTo associations
 *
 * @var array
 */
    public $belongsTo = array(
        'CustomerOrder' => array(
            'className' => 'CustomerOrder',
            'foreignKey' => 'customer_order_id',
            'conditions' => '',
            'fields' => '',
            'order' => ''
        ),
        'MasterArticle' => array(
            'className' => 'MasterArticle',
            'foreignKey' => 'master_article_id',
            'conditions' => '',
            'fields' => '',
            'order' => ''
        )
    );
}

2 个答案:

答案 0 :(得分:0)

尝试

if ($this->CustomerOrderItem->saveAll($this->request->data)) {

答案 1 :(得分:0)

首先删除所有验证规则,然后再次检查错误是否仍然存在。如果没有则必须存在数据验证规则问题或'customer_order_id'的空值。