我试图找到 laravel 4 在请求中处理数组数据的方式,但在网上找不到任何示例、教程和文档。
例子:
<select name="productDetails[0][service]">...</select>
<select name="productDetails[0][product]">...</select>
<select name="productDetails[0][action]">...</select>
<select name="productDetails[1][service]">...</select>
<select name="productDetails[1][product]">...</select>
<select name="productDetails[1][action]">...</select>
最终成为:
$_GET['productDetails'][0]['service']
$_GET['productDetails'][0]['product']
$_GET['productDetails'][0]['action']
$_GET['productDetails'][1]['service']
$_GET['productDetails'][1]['product']
$_GET['productDetails'][1]['action']
现在,如果我想让我的表单正常工作,我已经读取了这些数据,但我不能假设 productDetails 是一个数组并且特征为 0。我想使用 Laravel/Symfony 的 HTTP Foundation 组件提供的设施。
我试过无济于事:
Request::get('productDetails.0.service', null); //Doesn't work
Request::get('productDetails[0][service]', null); //Doesn't work
Request::get('productDetails.1.service', null); //Doesn't work
Request::get('productDetails[1][service]', null); //Doesn't work
我认为这些版本会起作用,因为您可以访问会话、配置以及可能许多其他类似的数据源。只是难倒这行不通...另一方面,以下代码段有效,但这很丑陋,因为您不能始终假设 productDetails 是一个数组,也不能假设存在 0 索引或“服务“索引太...
Request::get('productDetails', array())[0]['service']; //Works but ugly
Request::get('productDetails', array())[1]['service']; //Works but ugly
那么实现这一目标的正确方法是什么?
编辑#1
在标签中添加了 symfony,我现在意识到来自 Laravel 的 Request 对象确实是来自 symfony 的 HTTPFoundation,那么这些人是如何处理这一切的呢?我是唯一一个?我确定这只是命名约定的问题,我可能没有使用正确的术语来搜索我的文档