HandleInertiaRequests.php 1.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. namespace App\Http\Middleware;
  3. use Illuminate\Http\Request;
  4. use Inertia\Middleware;
  5. class HandleInertiaRequests extends Middleware
  6. {
  7. /**
  8. * The root template that's loaded on the first page visit.
  9. *
  10. * @see https://inertiajs.com/server-side-setup#root-template
  11. * @var string
  12. */
  13. protected $rootView = 'app';
  14. /**
  15. * Determines the current asset version.
  16. *
  17. * @see https://inertiajs.com/asset-versioning
  18. * @param \Illuminate\Http\Request $request
  19. * @return string|null
  20. */
  21. public function version(Request $request): ?string
  22. {
  23. return parent::version($request);
  24. }
  25. /**
  26. * Defines the props that are shared by default.
  27. *
  28. * @see https://inertiajs.com/shared-data
  29. * @param \Illuminate\Http\Request $request
  30. * @return array
  31. */
  32. public function share(Request $request): array
  33. {
  34. return array_merge(parent::share($request), [
  35. 'auth.user' => fn() => $request->user() ? $request->user()->only('id', 'name', 'email', 'role_id') : null,
  36. 'flash' => function () use ($request) {
  37. return [
  38. 'success' => $request->session()->get('success'),
  39. 'error' => $request->session()->get('error'),
  40. 'warning' => $request->session()->get('warning'),
  41. ];
  42. },
  43. ]);
  44. }
  45. }