Laravel 6表单数组$ request-> input()不起作用

时间:2019-10-09 12:51:15

标签: laravel laravel-6

我有这一系列的价格,就像这样:

<input type="input" id="prices[type][1]" name="prices[type][1]">
<input type="input" id="prices[type][2]" name="prices[type][2]">

我通过发布请求发送此数据(JSON:是,Content-Type设置为application/json),并且当我使用$request->input('prices')时有望获得一个数组,但这并没有真的发生了。也尝试过$request->get('prices')

当我做$request->all()时,会得到我提交的所有数据:

dumps of the different request methods

JS用于发出请求:

const response = await fetch(this.action, {
  method: 'POST',
  credentials: 'same-origin',
  headers: {
    'Content-Type': 'application/json',
    'X-CSRF-TOKEN': this.$page.token,
  },
  body: this.formData(),
});

const body = await response.json();

this.formData()

formData(): Object {
  const formData = new FormData(this.$el);

  return JSON.stringify(Array.from(formData.entries()).reduce((memo, pair) => ({
    ...memo,
    [pair[0]]: pair[1],
  }), {}));
},

有人对哪里可能出错有想法吗?

1 个答案:

答案 0 :(得分:0)

嗯,即使您执行all(),看起来数组还是坏了,因为我看不到数组中的type键。

尝试以下方法:

dd(json_decode($request->getContent(), true));

由于它是JSON,因此您需要获取主体并将其转换为数组。