我有输入数组,我需要做一个foreach但是laravel $ request-> all()只返回最后一个:
URL:
http://localhost:8000/api/ofertas?filter_pais=1&filter_pais=2&filter_pais=3
控制器:
public function filtroOfertas(Request $request){
return $request->all();
}
结果:
{"filter_pais":"3"}
结果应该返回1,2和3,我需要在filter_pais中创建一个foreach。 有解决方案吗感谢
答案 0 :(得分:1)
在查询字符串的键处使用[]。
http://localhost:8000/api/ofertas?filter_pais[]=1&filter_pais[]=2&filter_pais[]=3
它将被解析为数组。
答案 1 :(得分:0)
重复的参数毫无意义,应该毫无例外地避免。
但是看看其他解决方案,有几个:
<强> routes.php文件强>
$qry = "exec _ViewReceiveMessagesSample";
$stmt1 = sqlsrv_query($link, $qry);
while( $row = sqlsrv_fetch_array( $stmt1, SQLSRV_FETCH_ASSOC) )
{
//stuffs
}
<强>控制器:强>
Route::get('/api/ofertas/{r}', 'Controller@index');
鉴于该网址没有问号:
public function index($r)
{
$query = explode('&', $r);
$params = array();
foreach($query as $param)
{
list($name, $value) = explode('=', $param);
$params[urldecode($name)][] = urldecode($value);
}
// $params contains all parameters
}