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

时间:2017-01-17 18:29:42

标签: 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::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') );
}

当用户最初点击路线时,如何将这些查询参数添加到我的网址?我理解日期创建,但不确定如何通过这些日期。

1 个答案:

答案 0 :(得分:1)

首先,创建字符串日期:

$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()帮助程序:

public function showDashboard()
{
    $startDate = request('startDate');
    $endDate = request('endDate');