HandleInertiaRequests.php 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. namespace App\Http\Middleware;
  3. use Illuminate\Http\Request;
  4. use Inertia\Middleware;
  5. use Illuminate\Support\Facades\Auth;
  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' => function () use ($request) {
  37. return [
  38. 'user' => $request->user() ? [
  39. 'id' => $request->user()->id,
  40. 'name' => $request->user()->name,
  41. ] : null,
  42. ];
  43. },
  44. 'flash' => function () use ($request) {
  45. return [
  46. 'success' => $request->session()->get('success'),
  47. 'error' => $request->session()->get('error'),
  48. ];
  49. },
  50. 'isAdmin' => Auth::check() ? Auth::user()->hasRole('Admin') : null,
  51. ]);
  52. }
  53. }