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:将多维数组从视图发送到控制器?的主要内容,如果未能解决你的问题,请参考以下文章