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' => ''
        )
    );
}
4

3 に答える 3

1

検証またはdbのnullによるデータの問題であると確信しています。

  1. の内容をデバッグしますdebug($this->request->data);
  2. 無効なフィールドがあればデバッグしますdebug($this->Submission->invalidFields());validates()問題のリクエストがあった後は、必ずこれを呼び出してください。saveAll()
于 2013-03-10T11:44:15.540 に答える
0

試す

if ($this->CustomerOrderItem->saveAll($this->request->data)) {
于 2013-03-09T06:44:25.207 に答える