带有Intertia的Laravel Jetstream不返回用户

时间:2020-10-23 09:19:17

标签: laravel inertiajs

我已经用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

1 个答案:

答案 0 :(得分:1)

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

假设您已将惯性更新为某些新版本,那么您的用户null可能与以下事实有关:inertia-vue@v0.3.0$page返回一个整页对象,而不是页面道具-因此,就您而言,您必须使用$page.user而不是$page.props.user

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