LogController.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Filters\LogFilters;
  4. use App\Log;
  5. use App\Services\LogService;
  6. use Illuminate\Contracts\Foundation\Application;
  7. use Illuminate\Contracts\Pagination\LengthAwarePaginator;
  8. use Illuminate\Contracts\View\Factory;
  9. use Illuminate\Http\Request;
  10. use Illuminate\Http\Response;
  11. use Illuminate\Support\Facades\Gate;
  12. use Illuminate\View\View;
  13. class LogController extends Controller
  14. {
  15. /**
  16. * @param Request $request
  17. * @param LogFilters $filters
  18. * @return Application|LengthAwarePaginator|Factory|View
  19. */
  20. public function index(Request $request, LogFilters $filters)
  21. {
  22. if (!Gate::allows('日志-查询')) {
  23. return redirect(url('/'));
  24. }
  25. $logs = Log::query()->filter($filters)->orderByDesc('id')->with('user:id,name')->paginate($request->input('paginate')??50);
  26. return view('maintenance.log.index', compact('logs'));
  27. }
  28. /**
  29. * Display the specified resource.
  30. *
  31. * @param Log $log
  32. * @return Application|Factory|Response|View
  33. */
  34. public function show(Log $log)
  35. {
  36. $log->loadMissing('user:id,name');
  37. return view('maintenance.log.show', ['log' => $log]);
  38. }
  39. public function syncRedisLogs()
  40. {
  41. LogService::syncRedisLogs();
  42. return redirect('maintenance/log');
  43. }
  44. }