在我的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') );
}
当用户最初点击路线时,如何将这些查询参数添加到我的网址?我理解日期创建,但不确定如何通过这些日期。
答案 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');