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:sanctum
和verified
。
你对用户的看法是正确的。它附加在 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
我已经安装了带有 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:sanctum
和verified
。
你对用户的看法是正确的。它附加在 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