【问题标题】:Laravel 8 - just save only last record in foreach loopLaravel 8 - 只保存 foreach 循环中的最后一条记录
【发布时间】:2022-01-17 14:11:57
【问题描述】:

在 Controller 中,我想保存数据,但是当我尝试使用 foreach 循环时,它只是保存最后的记录

foreach (Form_821_item::group_items as $item) {
        foreach ($item['code'] as $code) { 
                $items = IntersectingList::where('trial_id', $form_821->trial_balance_id)->where('account_code', 'like', $code . '%')->get();
                if ($items) {
                    foreach ($items as $item) {
                        $account_name = $item->account_name;
                        $account_code = $item->account_code;
                        if ($item->total_balance_debit != 0) {
                            $financial_statements = $item->total_balance_debit;
                            $total_cash += $item->total_balance_debit;
                        } else {
                            $financial_statements = $item->total_balance_credit;
                            $total_cash += $item->total_balance_credit;
                        }
                    }
                }
            }
        $data = new Form_821_item();
        $data->form_821_id = $form_821->id;
        $data->account_name = $account_name;
        $data->account_code = $account_code;
        $data->financial_statement = $financial_statements;
        $data->save();
    }

还有什么建议吗?

【问题讨论】:

  • 你可以在那里使用多插入。只需制作一个数组并立即插入它。更多详情 - laravel.com/docs/8.x/…

标签: php laravel foreach laravel-8 foreach-loop-container


【解决方案1】:

您需要将插入代码放入 foreach 中

foreach (Form_821_item::group_items as $item) {
    foreach ($item['code'] as $code) { 
            $items = IntersectingList::where('trial_id', $form_821->trial_balance_id)->where('account_code', 'like', $code . '%')->get();
            if ($items) {
                foreach ($items as $item) {
                    $account_name = $item->account_name;
                    $account_code = $item->account_code;
                    if ($item->total_balance_debit != 0) {
                        $financial_statements = $item->total_balance_debit;
                        $total_cash += $item->total_balance_debit;
                    } else {
                        $financial_statements = $item->total_balance_credit;
                        $total_cash += $item->total_balance_credit;
                    }
                    $data = new Form_821_item();
                    $data->form_821_id = $form_821->id;
                    $data->account_name = $account_name;
                    $data->account_code = $account_code;
                    $data->financial_statement = $financial_statements;
                    $data->save();
                }
            }
        }
    
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    • 2012-06-01
    • 1970-01-01
    相关资源
    最近更新 更多