【问题标题】:one request to apply many changes in the DB在数据库中应用许多更改的一个请求
【发布时间】:2021-12-30 08:02:44
【问题描述】:

我有很多记录需要在一个请求中进行编辑,所以我去了 POST 请求 尝试像这样编辑我的控制器中的数据:

foreach ($attr as $key){
        foreach ($key->item as $attribute) {
            if ($attribute['action'] == 'store') {
                $insert_array = [
                    'subject_quiz_id' => $key->subject_quiz_id,
                    'registration_record_id' => $attribute->registration_record_id,
                    'mark' => $attribute->mark
                ];

            }
        } }

这是我的邮递员:

{
"subject_quiz_id": "7",
"item": [{
        "action": "store",
        "registration_record_id": "7",
        "mark": "3"
    },
    {
        "action": "store",
        "registration_record_id": "7",
        "mark": "3"
    }]}

但它只是继续推送此错误:

    "message": "Trying to get property 'item' of non-object",
"exception": "ErrorException",

【问题讨论】:

  • 确保 $attr 是对象的数组/集合!

标签: php json laravel postman nested-loops


【解决方案1】:
$insert_array = [];
foreach ($request->all() as $item) {
            if (is_array($item)) {
                foreach ($item as $value) {
                    if (isset($value['action'], $value['registration_record_id'], $value['mark']) && $value['action'] === 'store') {
                        $insert_array[] = [
                            'subject_quiz_id' => $request->subject_quiz_id,
                            'registration_record_id' => $value['registration_record_id'],
                            'mark' => $value['mark'],
                        ];
                    }
                }
            }
        }
dd($insert_array);

【讨论】:

  • 请为您的代码添加一些解释以及您为解决问题所做的工作。
  • 他得到一个错误,因为需要检查迭代元素是否为数组
猜你喜欢
  • 1970-01-01
  • 2021-08-06
  • 2018-12-27
  • 2011-10-26
  • 2013-05-19
  • 2021-08-07
  • 1970-01-01
  • 1970-01-01
  • 2023-01-07
相关资源
最近更新 更多