Laravel 带有 Intertia 的 Jetstream 未返回用户

Laravel Jetstream with Intertia not returning User

我已经安装了带有 Intertia 的 Jetstream。我注册了一个用户,然后尝试登录,控制台给我以下错误:

[Vue warn]: Error in render: "TypeError: _vm.$page.user is null"

当我查看来自控制器的响应时,确实它不包括用户。

用户附加在哪里?大概在一些中间件中。但是哪个?

这里有两个出现问题的网络路由。注意中间件的不同。

Route::middleware(['auth'])->get('/dashboard', function () {
    return Inertia\Inertia::render('Dashboard');
})->name('dashboard');

Route::get('/map', [MapController::class, 'show'])->name('map');

我也试过中间件auth:sanctumverified

你对用户的看法是正确的。它附加在 Jestream 提供的 ShareInertiaData 中间件中。

假设您将 inertia 更新到某个较新的版本,那么您的用户是 null 的原因可能与以下事实有关:自 inertia-vue@v0.3.0 $page returns 一个完整的页面对象,而不仅仅是页面道具 - 所以在你的情况下,你必须使用 $page.props.user.

而不是 $page.user

https://github.com/inertiajs/inertia/releases/tag/inertia-vue%40v0.3.0