Laravel 模型批量更新 - Builder::cleanBindings() 必须是数组类型,给定为空

Laravel Model Bulk Update - Builder::cleanBindings() must be of the type array, null given

我正在尝试通过来自我的 Vue 组件的 Ajax 请求批量更新 Laravel 中模型的日期。我的代码如下,但我不确定错误在哪里,我也使用 Postman 对此进行了测试,我将提供结果。

Vue 组件脚本标签

export default {
  props: ['data'],
  data() {
    return {
      last: null
    }
  },
  methods:{
    ...
    update(){
      console.log(this.data);
      console.log(this.last);
      axios.put('/api/maintain/bulk',
      {
        params: {
          'ids': this.data,
          'date': this.last.toString()
        }
      }).then((response) => {
        console.log(response);
      }, (xhr) => {
        console.log(xhr);
      });
     }
  },
  ...
}

data 是从父组件传递的,当记录时 returns [328, 346, __ob__: Observer]

last 由日期类型的输入设置 routes/api.php

...
Route::put('/maintain/bulk', 'MaintenanceController@bulkupdate');
...

MaintenanceController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Maintain;

class MaintenanceController extends Controller
{
  ...
  public function bulkupdate(Request $request){
    Maintain::whereIn('id', $request->input('ids'))->update(['start' => $request->input('date')]);
  }
}

邮递员API呼叫

PUT | http://127.0.0.1:8000/api/maintain/bulk`
body:
{
    "ids": [328, 346],
    "date": 2020-10-29
}

响应 - 错误也显示在 Laravel 日志文件中

TypeError: Argument 1 passed to Illuminate\Database\Query\Builder::cleanBindings() must be of the type array, null given, called in C:\Users\adam\LaravelProjects\EMG-AIM-Dev\vendor\laravel\framework\src\Illuminate\Database\Query\Builder.php on line 918 in file C:\Users\adam\LaravelProjects\EMG-AIM-Dev\vendor\laravel\framework\src\Illuminate\Database\Query\Builder.php on line 2954

-编辑-

我已经意识到请求有什么问题,但我仍然不确定如何解决它,我已经修改了 Postman 调用以显示当前问题,我认为这是由于以下事实从 DOM 输入传递日期似乎没有将其注册为字符串。

当日期作为字符串添加到请求中时 PUT 成功 ("2020-10-29") 但目前日期没有作为字符串传递,尽管当我通过以下方式发送参数时Ajax 请求我使用 toString() 方法。

发现将代码更改为以下内容解决了问题

Vue 组件

axios.put('/api/maintain/bulk', {
          'ids': this.data,
          'date': this.last
        })...

维护控制器

public function bulkupdate(Request $request){
    Maintain::whereIn('id', $request->ids)->update(['start' => $request->date]);
}