在控制器层级5上输入阵列循环

时间:2016-10-29 03:14:24

标签: laravel laravel-5 laravel-5.3

我有输入数组,我需要做一个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。 有解决方案吗感谢

2 个答案:

答案 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

}