HandleInertiaRequests.php 1.4KB

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