'contracts', 'title' => 'Договоры', 'id' => 'contracts', 'header' => [ 'id' => 'ID', 'contract_number' => 'Номер договора', 'contract_date' => 'Дата договора', 'year' => 'Год', ], 'searchFields' => [ 'contract_number', ], ]; public function index(Request $request) { session(['gp_contracts' => $request->query()]); $model = new Contract(); // fill filters $this->createFilters($model, 'year'); $this->data['ranges'] = []; $this->createDateFilters($model, 'contract_date'); $q = $model::query(); $this->acceptSearch($q, $request); $this->acceptFilters($q, $request); $this->setSortAndOrderBy($model, $request); $this->applyStableSorting($q); $this->data['contracts'] = $q->paginate($this->data['per_page'])->withQueryString(); return view('contracts.index', $this->data); } public function show(Contract $contract) { $this->data['contract'] = $contract; return view('contracts.edit', $this->data); } public function create() { $this->data['contract'] = null; return view('contracts.edit', $this->data); } public function store(StoreContractRequest $request) { Contract::query()->create($request->validated()); return redirect()->route('contract.index'); } public function update(StoreContractRequest $request, Contract $contract) { $contract->update($request->validated()); return redirect()->route('contract.index'); } public function delete(Contract $contract) { $contract->delete(); return redirect()->route('contract.index'); } }