【问题标题】:Laravel - multiple parameters in the URL [duplicate]Laravel - URL中的多个参数[重复]
【发布时间】:2020-06-16 17:05:13
【问题描述】:

我有一个简单的 foreach 循环,它以Y-m-d 格式循环遍历当前星期日期:

@foreach($dates as $date)
   <a href="{{route('consols.index', array_merge(\Request::query(), ['date' => date('Y-m-d', strtotime($date))]))}}">{{date('l', strtotime($date))}}</a>
@endforeach

有了上面,我可以简单地点击锚链接,具体日期会被附加:

example.org/consols?date=2020-03-04

现在我使用它来过滤特定的 SQL 查询,并且我希望能够过滤多个日期。例如:

example.org/consols?date=2020-03-04&date=2020-03-05&date=2020-03-06

在上面的例子中,我希望发送 3 个日期作为查询参数。

如果我只是将另一个&amp;date= 附加到已经存在的?date,它只会选择查询字符串中的最后一个date=

如何使用 PHP 在我的 URL 中发送多个具有相同参数名称的变量?

【问题讨论】:

标签: php laravel date


【解决方案1】:

添加一个整数$i

['date'.$i => date('Y-m-d'

你会有 date1= &date2= & date3=

【讨论】:

    【解决方案2】:

    您可以将日期添加为数组,即 date[]

    您的网址如下所示:

    example.org/consols?date[]=2020-03-04&date[]=2020-03-05&date[]=2020-03-06
    

    当你控制你的查询时,它会给你

    { date: [ '2020-03-04', '2020-03-05', '2020-03-06' ] }
    

    【讨论】:

      【解决方案3】:

      我最终查看了 CodyKL linked to 链接,从那里看到我实际上可以使用 http_build_query

      这是我的解决方案:

      
      $url = [];
      $dates = isset($_GET['date']) ? $_GET['date'] : null;
      if($dates){
      
        foreach($dates as $date){
           $url['date'][] = date('Y-m-d', strtotime($date));
        }
      
      }
      
      $query = http_build_query($url);
      

      然后我可以简单地重定向到$query

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-31
        • 2013-03-05
        • 2021-10-29
        • 1970-01-01
        • 1970-01-01
        • 2020-10-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多