Php 将参数的嵌套数组传递给laravel请求对象
我试图传递一个具有两个属性的params对象Php 将参数的嵌套数组传递给laravel请求对象,php,arrays,angularjs,laravel,laravel-5,Php,Arrays,Angularjs,Laravel,Laravel 5,我试图传递一个具有两个属性的params对象 身份证 阵列 通过$request对象访问属性。我得到的错误如下所示。我怎样才能做到这一点 角度: return $http({ method: 'GET', url: url + 'questions/check', cache: true, params: {
- 身份证
- 阵列
$request
对象访问属性。我得到的错误如下所示。我怎样才能做到这一点
角度:
return $http({
method: 'GET',
url: url + 'questions/check',
cache: true,
params: {
id: params.question_id, // 1
choices: params.answer_choices // [3, 2]
}
});
拉雷维尔:
$input = $request->all();
return $input; //output: {choices: "2", id: "1"}
return $input['choices']; //output: 2
显然,嵌套的选项
数组(应该是[3,2]
)没有通过这里
我还尝试了以下几种状态:
在处理带有“数组”输入的表单时,可以使用点表示法
访问阵列:
$input=Request::input('products.0.name')
我试过:
$input = $request->input('choices.1'); //should get `2`
return $input;
它什么也不返回
编辑:我可以判断选择数组发送时同时包含值3和2,但不确定如何从Laravel请求对象获取它们: 请求URI:
GET/api/questions/check?choices=3&choices=2&id=1http/1.1
答复来自:
$input = $request->all();
return $input;
您需要以与构建url格式表单请求相同的方式设置密钥
return $http({
method: 'GET',
url: url + 'questions/check',
cache: true,
params: {
id: params.question_id, // 1
"choices[]": params.answer_choices // [3, 2]
}
});
然后服务器将接收您的请求,如问题/检查?id=1&choices[]=3&choices[]=2
$http
服务将参数平坦化为查询字符串。出于某种原因,添加括号是不够明智的,因为服务器需要将查询字符串作为数组读取。mm尝试在参数[{}]上添加[],然后访问输入[0]['choices']@melvnberd。我看不出这有什么帮助。另外,$http AJAX调用需要发送一个对象,而不是一个数组。您在浏览器开发工具网络的url中看到了什么?@charlietfl请参见上文