HandleInertiaRequests.php 1.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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' => function () use ($request) {
  36. return [
  37. 'user' => $request->user() ? [
  38. 'id' => $request->user()->id,
  39. 'name' => $request->user()->name,
  40. ] : null,
  41. ];
  42. },
  43. 'flash' => function () use ($request) {
  44. return [
  45. 'success' => $request->session()->get('success'),
  46. 'error' => $request->session()->get('error'),
  47. ];
  48. },
  49. ]);
  50. }
  51. }