【问题标题】:How to store array data in mysql database laravel?如何在mysql数据库laravel中存储数组数据?
【发布时间】:2021-03-12 02:19:39
【问题描述】:

我收到错误Trying to access array offset on value of type int

下面是我的控制器,用于将数组数据存储到数据库中

    for ($i = 1; $i < count($request->sanitation_point_id); $i++) {
        $sanitation_points[] = [
            'daily_log_id' => $daily_log->id[$i],
            'sanitation_point_id' => $request->sanitation_point_id[$i]
        ];
        SanitationDailylogRelation::create($sanitation_points);
    }

【问题讨论】:

  • 最好显示$daily_log-&gt;id$request-&gt;sanitation_point_id[$i]的哪一行和包含

标签: javascript php laravel vue.js


【解决方案1】:

试试这个

for ($i = 1; $i < count($request->sanitation_point_id); $i++) {
        $sanitation_points = [
            'daily_log_id' => $daily_log->id[$i],
            'sanitation_point_id' => $request->sanitation_point_id[$i]
        ];
        SanitationDailylogRelation::create($sanitation_points);
    }

【讨论】:

    【解决方案2】:

    数组索引从零开始,将循环初始变量更改为 0 ($i = 0;)

    完整代码:

    for ($i = 0; $i < count($request->sanitation_point_id); $i++) {
        $sanitation_points[] = [
            'daily_log_id' => $daily_log->id[$i],
            'sanitation_point_id' => $request->sanitation_point_id[$i]
        ];
        SanitationDailylogRelation::create($sanitation_points);
    }
    

    或为了更好的处理:

    for ($i = 0; $i < count($request->sanitation_point_id); $i++) {
      if(isset($daily_log->id[$i]) && isset($request->sanitation_point_id[$i]))
      {
        $sanitation_points[] = [
            'daily_log_id' => $daily_log->id[$i],
            'sanitation_point_id' => $request->sanitation_point_id[$i]
        ];
        SanitationDailylogRelation::create($sanitation_points);
      }
    }
    

    【讨论】:

    • 尝试使用isset检查选项2
    猜你喜欢
    • 1970-01-01
    • 2016-10-06
    • 1970-01-01
    • 1970-01-01
    • 2019-04-27
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多