【问题标题】:how to update data in a database as much as data contained in arrays in Laravel如何更新数据库中的数据与 Laravel 中数组中包含的数据一样多
【发布时间】:2020-03-27 19:47:56
【问题描述】:

我想用我的数组中的数据更新数据库中的数据,我使用 Foreach 更新我的数据,但是我收到这样的错误

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

这是我的数组

array:35 [
  0 => array:5 [
    "id" => 1
    "post_categori" => "internet"
    "status" => "active"
  ]
  1 => array:5 [
    "id" => 2
    "post_categori" => "banking"
    "status" => "active"
  ]

这是我控制器中的代码

foreach($data as $data)
        {
            $results = Post::where('user_id','=', $data->id)
                        ->first();
            $results->status = $data->status;
            $results->save();
        }

所以这里我想将数据库中的所有状态更改为我的数组中的状态,根据相同的user_id(在我的数据库中)与$array-> id 相同

【问题讨论】:

  • foreach($data as $data) { $results = Post::where('user_id','=', $data->id) ->first(); if(!empty($results){ $results->status = $data->status; $results->save(); } }

标签: php laravel laravel-5 foreach eloquent


【解决方案1】:

您正在循环遍历数组而不是对象,请将 $data->id 更改为 $data['id']

【讨论】:

    【解决方案2】:

    你正在使用 array 数据,所以使用如下。

    foreach($data as $da)
    {
          $results = Post::where('user_id','=', $da['id'])->first();
          $results->status = $data['status'];
          $results->save();
    }
    

    【讨论】:

    • 我得到一些错误从空值创建默认对象"
    猜你喜欢
    • 2022-11-02
    • 2019-10-15
    • 1970-01-01
    • 2017-06-08
    • 2018-06-11
    • 2019-09-13
    • 2018-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多