Почему мои реквизиты пусты в моем проекте laravel-vue-inertia?

Я начинаю новый проект и не уверен, почему реквизит в моем vue devtools пуст? Где информация о пользователе, под которым я вошел в систему? Нужно ли мне где-то настраивать эту опцию?

Это мой app.js

import { InertiaApp } from '@inertiajs/inertia-vue'
import Vue from 'vue'
import ElementUI from 'element-ui'
import lang from 'element-ui/lib/locale/lang/es'
import 'element-ui/lib/theme-chalk/reset.css'
import locale from 'element-ui/lib/locale'

locale.use(lang);
Vue.use(InertiaApp);
Vue.use(ElementUI);


const app = document.getElementById('app');
app.setAttribute(':class',"{'loaded': loaded}");
new Vue({
    render: h => h(InertiaApp, {
        props: {
            initialPage: JSON.parse(app.dataset.page),
            resolveComponent: name => import(`@/Pages/${name}`).then(module => module.default),
        },
        data(){
            return{
                loaded:true
            }
        }
    }),
}).$mount(app);

Это мой webpack.mis.js

const mix = require('laravel-mix');
const path = require('path');

mix.js('resources/js/app.js', 'public/js')
    .sass('resources/sass/app.scss', 'public/css')
    .webpackConfig({
        output: { chunkFilename: 'js/[name].js?id=[chunkhash]' },
        resolve: {
            alias: {
                vue$: 'vue/dist/vue.runtime.esm.js',
                '@': path.resolve('resources/js'),
            },
        },
    })
    .babelConfig({
        plugins: ['@babel/plugin-syntax-dynamic-import'],
    })
    .version();

Где моя ошибка?

1 ответ

Один из способов справиться с аутентифицированными пользователями - предоставить зарегистрированного пользователя в качестве реквизита.

Быстрый способ сделать это - зайти в AppServiceProvider.php файл и добавьте следующее в свой register() метод.

Inertia::share('auth.user', function () {
    if (Auth::user()) {
        return [
            'id' => Auth::user()->id,
            'first_name' => Auth::user()->first_name,
            'last_name' => Auth::user()->last_name,
        ];
    }
});

Доступ к данным осуществляется через $page переменная.

<template>
    <p>{{ $page.auth.user.first_name }}</p>
</template>
Другие вопросы по тегам