Hej,
mam listę dokumentów ( numer dokumentu, data wystawienia, etc... )
Nad tabelką, która trzyma te dane chciałbym umieścić filtr ( rok, miesiąc ), za który mają zostać wyświetlone:
- Wchodzę 1szy raz wyświetlam domyślnie dokumenty z obecnego roku i m-ca. zaznaczam opcje filtra odpowiednio.
- Ustawiam filtr - zapisz. Lista się filtruje i zapamiętuje co było we filtrze. zaznaczam opcje filtra odpowiednio na te z sesji
mam taki brzydki kod, działa, który chciałbym poprawić. Pomożecie to zrefaktoryzować?
public function index(Request $request)
{
$selectYear = AppTools::YearCollection();
$selectMonth = AppTools::MonthCollection();
if(empty(session('filterYear')) && empty(session('filterMonth')) && empty($request->filterYear))
{
$year = Carbon::parse(now())->year;
$month = Carbon::parse(now())->month;
}
elseif( ! empty($request->filterYear && ! empty($request->filterMonth)))
{
session(['filterYear' => $request->filterYear]);
session(['filterMonth' => $request->filterMonth]);
$year = session('filterYear');
$month = session('filterMonth');
}
else {
$year = session('filterYear');
$month = session('filterMonth');
}
$documents = $this->documentService->getDocumentsByYearAndMonth(100, $year, $month);
return view('document.list', [
'documents' => $documents,
'year' => $year,
'month' => $month,
'selectYear' => $selectYear,
'selectMonth' => $selectMonth
]);
}