2017-01-17 4 views
1

В моем проекте Laravel у меня есть панель мониторинга, которая выводит данные на еженедельной основе. Теперь мне нужно предоставить пользователям возможность переключаться между неделями и соответствующим образом обновлять данные панели.Доступ к датам в строке запроса с использованием 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' => '[email protected]' 
]); 

Вот соответствующий контроллер:

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

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

Когда пользователь нажимает маршрут сначала, как бы я добавить эти параметры запроса на мой URL? Я понимаю создание даты, но не знаю, как пройти эти даты.

ответ

0

Прежде всего, создать строковые даты:

$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 }} 

Чтобы получить даты в co ntroller request() вспомогательный:

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