小编pho*_*nix的帖子

Laravel Jetstream Inertia 共享全球应用数据

我想分享一些我发现的东西,因为那里没有太多信息(我找不到)。带有 Jetstream Inertia 的 Laravel 8 有一些共享对象,例如用户、当前路由……您可以使用 $page 变量在组件中访问它们。我需要添加一个菜单数组作为全局变量,但无法弄清楚,即使在官方 Inertia 文档中找到了一些信息。只是在 Laravel Jetstream 中有所不同。

直到我找到了 Laravel Jetstream 的共享数据中间件(ShareInertiaData),我才知道怎么做。

这是:

  1. 在 app/Http/Middleware.php 中创建一个中间件。我叫我的 ShareInertiaCustomData。
<?php

namespace App\Http\Middleware;

use Inertia\Inertia;

class ShareInertiaCustomData
{
    public function handle($request, $next)
    {
        Inertia::share([
            'menu' => config('menu'),
        ]);

        return $next($request);
    }
}
Run Code Online (Sandbox Code Playgroud)
  1. 放在app/Http/Kernel.php
    protected $middlewareGroups = [
        'web' => [
            ...
            \App\Http\Middleware\ShareInertiaCustomData::class,
        ],
    ];
Run Code Online (Sandbox Code Playgroud)

我希望这会有所帮助,没有其他人需要花费数小时来解决这个问题。

global-variables shared-data inertiajs laravel laravel-jetstream

11
推荐指数
2
解决办法
2472
查看次数