ErrorException при регистрации в Laravel 8 Jetstream

Я начал проект на Laravel 7 незадолго до запуска Laravel 8, я все еще изучаю этот фреймворк, поэтому я обновился до этой версии, используя следующие шаги, и я знаю об этом новом вызове библиотеки шаблонов Jetstream, который я установил с помощью следующих шагов:

  1. composer require laravel/jetstream

  2. php artisan jetstream:install livewire --teams

  3. npm install && npm run dev

  4. php artisan migrate

После работы над моими представлениями и моделями я приступаю к реализации функций сеансов, но когда я попытался зарегистрироваться в проекте по адресу localhost: 8000 / register и подтвердив мои данные, я получил эту ошибку

Попытка получить свойство 'id' не-объекта (View: \ path-to \ my-project \ resources \ views \ navigation-dropdown.blade.php) (View: \ path-to \ my-project \ resources \ views \ navigation-dropdown.blade.php) (Просмотр: \ путь-к \ моему-проекту \ ресурсы \ представления \ навигация-dropdown.blade.php) http: // localhost: 8000 / приборная панель

Это раздел представления, который генерирует исключение
navigation-dropdown.blade.php строка 169 это ванильный файл

                    <!-- Team Settings -->
                <x-jet-responsive-nav-link href="{{ route('teams.show', Auth::user()->currentTeam->id) }}" :active="request()->routeIs('teams.show')">
                    {{ __('Team Settings') }}
                </x-jet-responsive-nav-link>
     

Данные, введенные в регистровую форму, сохраняются в базе данных, но возникает ошибка.

Я проверил этот другой вопрос Проблемы Laravel Jetstream + Livewire + Teams FeatureTest при аутентификации, но похоже, что ответ применим к другому контексту, поскольку он имеет дело с тестами, а не с функциями ванильного регистра.

Это мой текущий composer.json

{
    "name": "laravel/laravel",
    "type": "project",
    "description": "The Laravel Framework.",
    "keywords": [
        "framework",
        "laravel"
    ],
    "license": "MIT",
    "require": {
        "php": "^7.3.0",
        "fideloper/proxy": "^4.2",
        "fruitcake/laravel-cors": "^2.0",
        "guzzlehttp/guzzle": "^7.0.1",
        "laravel/framework": "^8.0",
        "laravel/jetstream": "^1.0",
        "laravel/sanctum": "^2.6",
        "laravel/tinker": "^2.0",
        "livewire/livewire": "^2.0"
    },
    "require-dev": {
        "facade/ignition": "^2.3.6",
        "fzaninotto/faker": "^1.9.1",
        "mockery/mockery": "^1.3.1",
        "nunomaduro/collision": "^5.0",
        "phpunit/phpunit": "^8.5"
    },
    "config": {
        "optimize-autoloader": true,
        "preferred-install": "dist",
        "sort-packages": true
    },
    "extra": {
        "laravel": {
            "dont-discover": []
        }
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/",
            "Database\\Factories\\": "database/factories/",
            "Database\\Seeders\\": "database/seeders/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "minimum-stability": "dev",
    "prefer-stable": true,
    "scripts": {
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover --ansi"
        ],
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate --ansi"
        ]
    }
}

Я попытался установить, чтобы протестировать новый проект Laravel с помощью Jetstream, и это сработало так, как должно, что позволило мне запутаться в том, что произошло с моим текущим проектом.


person D.P    schedule 20.10.2020    source источник
comment
посмотрите на файл представления и выясните, почему он пытается получить свойство 'id' чего-то ... возможно, это маршрут, который должен находиться за auth, и это представление пытается получить идентификатор аутентифицированного пользователя?   -  person lagbox    schedule 21.10.2020
comment
В представлении кажется, что запрашивается текущий идентификатор группы, я установил библиотеки команд для Jetstream, но, как я сказал при новой установке, он работает, поэтому он должен работать здесь.   -  person D.P    schedule 21.10.2020
comment
тогда пользователь не может быть связан с командой   -  person lagbox    schedule 21.10.2020


Ответы (2)


В конце концов, у меня сработало создание нового нового проекта с помощью jetstream, затем в моем исходном проекте удалили папку vendor и node_modules, затем скопировали файлы нового нового проекта в мой исходный проект, и теперь он работает, как ожидалось

Ответ добавлен от имени OP.

person Community    schedule 24.10.2020

Пользователь не был создан с назначенной командой, см. Таблицу пользователей и столбец current_team_id имеет значение null. Navigation-menu.blade.php проверяет только TeamFeatures, но не проверяет, действительно ли команда назначена.

            @if (Laravel\Jetstream\Jetstream::hasTeamFeatures())
            @if (Laravel\Jetstream\Jetstream::hasTeamFeatures() && Auth::user()->current_team_id)

Для получения дополнительной информации вот проблема: при попытке получить свойство не-объекта

person Patrick Kirsch    schedule 17.06.2021