Php 使用Laravel访问查询字符串中的日期

Php 使用Laravel访问查询字符串中的日期,php,laravel,laravel-5,php-carbon,Php,Laravel,Laravel 5,Php Carbon,在我的Laravel项目中,我有一个每周显示数据的仪表板。现在,我需要为用户提供一种在两周之间切换的方法,并相应地更新仪表板数据 理想情况下,我会使用查询参数来实现这一点,比如domain.dev/dashboard?start=2017-01-02&end=2017-01-08。然后,如果用户点击后退按钮,他们可以返回前一周的数据(例如,domain.dev/dashboard?start=2016-12-26&end=2017-01-02),依此类推 以下是我目前的路线: Route::ge

在我的Laravel项目中,我有一个每周显示数据的仪表板。现在,我需要为用户提供一种在两周之间切换的方法,并相应地更新仪表板数据

理想情况下,我会使用查询参数来实现这一点,比如
domain.dev/dashboard?start=2017-01-02&end=2017-01-08
。然后,如果用户点击后退按钮,他们可以返回前一周的数据(例如,
domain.dev/dashboard?start=2016-12-26&end=2017-01-02
),依此类推

以下是我目前的路线:

Route::get('/dashboard/weekly', [
    'as' => 'providerDashboardIndex', 'uses' => 'DashboardController@indexWeekly'
]);
以下是相应的控制器:

public function index()
{
    $user = Auth::user();
    $endDate = Carbon::today();
    $startDate = Carbon::today()->subDays(7);

    return view('providers.dashboard.index', compact('user', 'startDate', 'endDate') );
}

当用户最初点击路由时,我如何将这些查询参数添加到我的URL?我了解日期创建,但不确定如何传递这些日期。

首先,创建字符串日期:

$endDate = Carbon::today()->toDateString();
$startDate = Carbon::today()->subDays(7)->toDateString();
如果您想准确地使用
/dashboard?start=2017-01-02&end=2017-01-08
URI格式,
dashboard
路由应如下所示:

Route::get('dashboard', ....
然后,您将能够在视图中创建链接:

{{ url('dashboard?start=').$startDate.'&end='.$endDate }}
要在控制器中获取日期,请使用
request()
helper:

public function showDashboard()
{
    $startDate = request('startDate');
    $endDate = request('endDate');
?start=')。$startDate.&end=')。$endDate应为?startDate=')。$startDate.&endDate=')。$endDate才能使控制器工作。