php - 使用 saveAll 保存包含一些空元素的数组

标签 php cakephp

我有一个数组,其中包含许多数组,其中包含我想要使用 saveAllsaveMany 保存的数据。然而,由于我无法改变的因素,并非所有数组实际上都包含任何数据。在下面的转储中,您可以看到,只有前两个数组被填充。

使用 saveAllsaveMany 保存此数组时,我收到以下错误:违反完整性约束:1048 列“productinfo_id”不能为空.

使用 saveAll 或 saveMany 保存数组时如何避免此错误?

array(
    (int) 1 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '68',
        'quantity' => '30',
        'productName' => 'ciplorex syp 125',
        'pack' => '60ml',
        'purchasePrice' => '49.30',
        'grossAmount' => '1479.00',
        'discountPercent' => '20.00',
        'discountAmount' => '295.80',
        'netAmount' => '1183.20'
    ),
    (int) 2 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '69',
        'quantity' => '27',
        'productName' => 'ciplorex syp 250',
        'pack' => '60ml',
        'purchasePrice' => '85.00',
        'grossAmount' => '2295.00',
        'discountPercent' => '20.00',
        'discountAmount' => '459.00',
        'netAmount' => '1836.00'
    ),
    (int) 3 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '',
        'quantity' => '',
        'productName' => '',
        'pack' => '',
        'purchasePrice' => '',
        'grossAmount' => '',
        'discountPercent' => '',
        'discountAmount' => '',
        'netAmount' => ''
    ),
    (int) 4 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '',
        'quantity' => '',
        'productName' => '',
        'pack' => '',
        'purchasePrice' => '',
        'grossAmount' => '',
        'discountPercent' => '',
        'discountAmount' => '',
        'netAmount' => ''
    ),
    (int) 5 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '',
        'quantity' => '',
        'productName' => '',
        'pack' => '',
        'purchasePrice' => '',
        'grossAmount' => '',
        'discountPercent' => '',
        'discountAmount' => '',
        'netAmount' => ''
    ),
    (int) 6 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '',
        'quantity' => '',
        'productName' => '',
        'pack' => '',
        'purchasePrice' => '',
        'grossAmount' => '',
        'discountPercent' => '',
        'discountAmount' => '',
        'netAmount' => ''
    ),
    (int) 7 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '',
        'quantity' => '',
        'productName' => '',
        'pack' => '',
        'purchasePrice' => '',
        'grossAmount' => '',
        'discountPercent' => '',
        'discountAmount' => '',
        'netAmount' => ''
    ),
    (int) 8 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '',
        'quantity' => '',
        'productName' => '',
        'pack' => '',
        'purchasePrice' => '',
        'grossAmount' => '',
        'discountPercent' => '',
        'discountAmount' => '',
        'netAmount' => ''
    ),
    (int) 9 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '',
        'quantity' => '',
        'productName' => '',
        'pack' => '',
        'purchasePrice' => '',
        'grossAmount' => '',
        'discountPercent' => '',
        'discountAmount' => '',
        'netAmount' => ''
    ),
    (int) 10 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '',
        'quantity' => '',
        'productName' => '',
        'pack' => '',
        'purchasePrice' => '',
        'grossAmount' => '',
        'discountPercent' => '',
        'discountAmount' => '',
        'netAmount' => ''
    ),
    (int) 11 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '',
        'quantity' => '',
        'productName' => '',
        'pack' => '',
        'purchasePrice' => '',
        'grossAmount' => '',
        'discountPercent' => '',
        'discountAmount' => '',
        'netAmount' => ''
    ),
    (int) 12 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '',
        'quantity' => '',
        'productName' => '',
        'pack' => '',
        'purchasePrice' => '',
        'grossAmount' => '',
        'discountPercent' => '',
        'discountAmount' => '',
        'netAmount' => ''
    ),
    (int) 13 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '',
        'quantity' => '',
        'productName' => '',
        'pack' => '',
        'purchasePrice' => '',
        'grossAmount' => '',
        'discountPercent' => '',
        'discountAmount' => '',
        'netAmount' => ''
    ),
    (int) 14 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '',
        'quantity' => '',
        'productName' => '',
        'pack' => '',
        'purchasePrice' => '',
        'grossAmount' => '',
        'discountPercent' => '',
        'discountAmount' => '',
        'netAmount' => ''
    ),
    (int) 15 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '',
        'quantity' => '',
        'productName' => '',
        'pack' => '',
        'purchasePrice' => '',
        'grossAmount' => '',
        'discountPercent' => '',
        'discountAmount' => '',
        'netAmount' => ''
    ),
    (int) 16 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '',
        'quantity' => '',
        'productName' => '',
        'pack' => '',
        'purchasePrice' => '',
        'grossAmount' => '',
        'discountPercent' => '',
        'discountAmount' => '',
        'netAmount' => ''
    ),
    (int) 17 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '',
        'quantity' => '',
        'productName' => '',
        'pack' => '',
        'purchasePrice' => '',
        'grossAmount' => '',
        'discountPercent' => '',
        'discountAmount' => '',
        'netAmount' => ''
    ),
    (int) 18 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '',
        'quantity' => '',
        'productName' => '',
        'pack' => '',
        'purchasePrice' => '',
        'grossAmount' => '',
        'discountPercent' => '',
        'discountAmount' => '',
        'netAmount' => ''
    ),
    (int) 19 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '',
        'quantity' => '',
        'productName' => '',
        'pack' => '',
        'purchasePrice' => '',
        'grossAmount' => '',
        'discountPercent' => '',
        'discountAmount' => '',
        'netAmount' => ''
    ),
    (int) 20 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '',
        'quantity' => '',
        'productName' => '',
        'pack' => '',
        'purchasePrice' => '',
        'grossAmount' => '',
        'discountPercent' => '',
        'discountAmount' => '',
        'netAmount' => ''
    ),
    (int) 21 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '',
        'quantity' => '',
        'productName' => '',
        'pack' => '',
        'purchasePrice' => '',
        'grossAmount' => '',
        'discountPercent' => '',
        'discountAmount' => '',
        'netAmount' => ''
    ),
    (int) 22 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '',
        'quantity' => '',
        'productName' => '',
        'pack' => '',
        'purchasePrice' => '',
        'grossAmount' => '',
        'discountPercent' => '',
        'discountAmount' => '',
        'netAmount' => ''
    ),
    (int) 23 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '',
        'quantity' => '',
        'productName' => '',
        'pack' => '',
        'purchasePrice' => '',
        'grossAmount' => '',
        'discountPercent' => '',
        'discountAmount' => '',
        'netAmount' => ''
    ),
    (int) 24 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '',
        'quantity' => '',
        'productName' => '',
        'pack' => '',
        'purchasePrice' => '',
        'grossAmount' => '',
        'discountPercent' => '',
        'discountAmount' => '',
        'netAmount' => ''
    ),
    (int) 25 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '',
        'quantity' => '',
        'productName' => '',
        'pack' => '',
        'purchasePrice' => '',
        'grossAmount' => '',
        'discountPercent' => '',
        'discountAmount' => '',
        'netAmount' => ''
    ),
    (int) 26 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '',
        'quantity' => '',
        'productName' => '',
        'pack' => '',
        'purchasePrice' => '',
        'grossAmount' => '',
        'discountPercent' => '',
        'discountAmount' => '',
        'netAmount' => ''
    ),
    (int) 27 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '',
        'quantity' => '',
        'productName' => '',
        'pack' => '',
        'purchasePrice' => '',
        'grossAmount' => '',
        'discountPercent' => '',
        'discountAmount' => '',
        'netAmount' => ''
    ),
    (int) 28 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '',
        'quantity' => '',
        'productName' => '',
        'pack' => '',
        'purchasePrice' => '',
        'grossAmount' => '',
        'discountPercent' => '',
        'discountAmount' => '',
        'netAmount' => ''
    ),
    (int) 29 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '',
        'quantity' => '',
        'productName' => '',
        'pack' => '',
        'purchasePrice' => '',
        'grossAmount' => '',
        'discountPercent' => '',
        'discountAmount' => '',
        'netAmount' => ''
    ),
    (int) 30 => array(
        'purchaseinfo_id' => '7',
        'productinfo_id' => '',
        'quantity' => '',
        'productName' => '',
        'pack' => '',
        'purchasePrice' => '',
        'grossAmount' => '',
        'discountPercent' => '',
        'discountAmount' => '',
        'netAmount' => ''
    )
)

最佳答案

在保存数组之前,我建议对其进行循环并过滤空数组。示例:

$originalArray = #Your Data;

$saveArray = array();

foreach($originalArray as $item) {
    if(!empty($item['productinfo_id'])) {
        $saveArray[] = $item;
    }
}

然后您可以将新数组提供给 saveAll 方法。

关于php - 使用 saveAll 保存包含一些空元素的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32399350/

相关文章:

php - SELECT 查询不起作用 MySQL

php - 为什么 attach 方法在 Laravel 中返​​回 null?

mysql - CakePHP 按日期范围查找?

php - 对相关表数据进行排序

php - 在插件元素 CakePHP 3 中获取当前插件名称

php - 找出两个人是否拥有相同的IP地址php和sql

php - 文件上传不在/tmp

php - DataTables 警告 : JSON data from server could not be parsed. 这是由 JSON 格式错误引起的

php - CakePHP:具有默认值的日期字段

php - 使用 CakePHP 或普通 PHP 备份数据库到文件