【发布时间】:2021-02-27 02:49:35
【问题描述】:
我想分享一些我发现的东西,因为那里没有太多信息(我找不到)。 带有 Jetstream Inertia 的 Laravel 8 有一些共享对象,例如用户、当前路线……您可以使用 $page 变量在组件中访问它们。 我需要添加一个菜单数组作为全局变量,但无法弄清楚,即使在官方 Inertia 文档中找到了一些信息。只是在 Laravel Jetstream 中有所不同。
直到我找到了 Laravel Jetstream 的共享数据中间件 (ShareInertiaData),我才知道如何去做。
这里是:
- 在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);
}
}
- 放在app/Http/Kernel.php中
protected $middlewareGroups = [
'web' => [
...
\App\Http\Middleware\ShareInertiaCustomData::class,
],
];
我希望这会有所帮助,没有其他人需要花费数小时来解决这个问题。
【问题讨论】:
-
感谢@phoenix 发布此消息。我花了一个小时试图弄清楚这一点! Jetstream 和 Inertia 之间的文档在这方面存在明显的差距。将其作为问题发布,然后按照通常的堆栈溢出标准发布问题的答案可能是个好主意,因为版主可能不喜欢目前的方式,如果他们删除它,这对于任何想做同样事情的人来说都是非常重要的信息。
标签: laravel global-variables inertiajs jetstream shared-data