首页 > 解决方案 > Laravel VueJS - 输入值数组返回字符串而不是数组

问题描述

标题可能令人困惑,但我会解释。在我的 VueJS 组件中,我有一个名为selectedProducts = []. 我只需单击一个按钮即可将产品添加到数组中,并且可以执行常规操作,例如循环遍历它。

我使用 push 方法将产品添加到数组中。this.selectedProducts.push(product);

我想将该特定数组传递给输入字段的值,以便可以将其与表单一起发送。像这样

<input type="hidden" :value="selectedProducts" name="selectedProducts[]">

但是发生了一些奇怪的事情,因为当我想访问我的 PHP 控制器中的数组时,我得到了这个响应

Array ( [0] => [object Object],[object Object] )

is_array($request->array[0])返回 false

通常您应该能够访问对象及其值,但这些是字符串?当我想做$request->selectedProducts[0]$request->selectedProducts[0][0]不能做时,因为它是一个字符串?

 print_r($request->selectedProducts); // Returns Array ( [0] => [object Object],[object Object] )
 print(gettype($request->selectedProducts[0])); // Returns "["
 dd(is_array($request->selectedProducts[0])); // Returns false

这里发生了什么?为什么我不能在控制器中访问我的数据?

标签: javascriptphparrayslaravelvue.js

解决方案


我认为您必须遍历所有产品并返回

<input type="hidden" :value="selectedProducts[index]" name="selectedProducts[]">

然后可能会在数组中添加一些标识符,例如

<input type="hidden" :value="selectedProducts[index]" name="selectedProducts[`${product.id}`]">

推荐阅读