This package enables you to share inertia data easy.
Install via composer
composer require ebess/laravel-inertia-shared-data-provider
Add middleware before the inertia request middleware
protected $middlewareGroups = [
'web' => [
// ...
\Ebess\LaravelInertiaSharedDataProvider\Http\Middleware\InertiaSharedData::class,
\App\Http\Middleware\HandleInertiaRequests::class,
],
];
Implement shared data provider
use Ebess\LaravelInertiaSharedDataProvider\Contracts\InertiaSharedDataProvider;
class FooBarSharedDataProvider implements InertiaSharedDataProvider
{
public function provide(Request $request): array
{
return [
'foo' => 'bar',
];
}
}
Tag the provider
use Ebess\LaravelInertiaSharedDataProvider\Contracts\InertiaSharedDataProvider;
class AppServiceProvider extends ServiceProvider
{
public function register()
{
$this->app->tag(
FooBarSharedDataProvider::class,
InertiaSharedDataProvider::TAG_NAME
);
}
}
Use shared data in frontend
<template>
<div>shared data: {{ $page.props.foo }}</div>
</template>