Laravel:将多维数组从视图发送到控制器?

Posted

技术标签:

【中文标题】Laravel:将多维数组从视图发送到控制器?【英文标题】:Laravel: Send multidimentional array from view to controller? 【发布时间】:2018-01-05 05:01:29 【问题描述】:

我在将多维数组从视图发送到控制器时遇到问题,实际上我有这个数组:

$array_data[$i] = ['providers_id'=>$chosen_providers[$i],'buy_prices'=>$buy_prices[$i],'total'=>$total;                                                
];

如何将其发送到我的控制器?

我试过了:

 Form::hidden('array_data[]',$array_data[$i]) 

但是我得到了 htmlentities() 期望参数 1 是字符串,数组给定错误

问候

【问题讨论】:

检查 array_flatten() 或者您可以将数组作为多维数组发送,然后在视图中将数组作为多维数组读取 【参考方案1】:

您可以使用serialize() 传递您的数组。然后 unserialize() 控制器中的值。

查看:

 <input type="hidden" name="test" value=" serialize($arr) ">

控制器:

dd(unserialize($request->test));

【讨论】:

非常感谢! 请不要使用此解决方案,因为任何人都可以修改您的隐藏输入,从而在您的后端创建任意变量、类等,这是一个安全风险。如果您有渲染表单的数据,最好将此数组存储在会话中,然后在提交表单时使用它。 感谢您的评论。你是对的,我只是展示一个程序。但是出于安全问题,这段代码并不完美。【参考方案2】:

如果还有其他要传递数组的函数,对 laravel 函数不太了解...

但在这里您可以将该数组转换为字符串或 json,然后在控制器中将其再次解码为数组。

【讨论】:

以上是关于Laravel:将多维数组从视图发送到控制器?的主要内容,如果未能解决你的问题,请参考以下文章

如何将多维数组转换为Laravel中的集合

循环多维数组 Laravel

如何使用 laravel 将多维数组传递给 API

在 laravel 中导出 excel 或 csv 中的多维数组

如何使用ajax将数据从视图发送到控制器laravel?

Laravel + Vue - 将多维 PHP 数组传递给 vue 组件