«Вызов функции-члена без globalScopes по null» в Laravel и Nova

Я планирую разработать веб-приложение на Laravel и Nova. Nova - это CMS-пакет для Laravel, представленный совсем недавно. Поскольку это новая технология, у меня возникла проблема с ее использованием. Я не могу объявить поле для внешнего ключа в ресурсе.

Я создал новую модель под названием Post, запустив команду artisan для создания модели, и это определение класса миграции Post.

class CreatePostsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->string("title");
            $table->text('content')->nullable();
            $table->unsignedInteger('user_id');
            $table->increments('id');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('posts');
    }
}

Затем я создал для него ресурс, выполнив эту команду.

php artisan nova:resource Post

Когда я проверяю панель администратора Nova, я вижу, что добавлен пункт меню для ресурса Post.

«Вызов функции-члена без globalScopes по null» в Laravel и Nova

Затем в методе fields ресурса Post я добавил этот код для свертывания формы.

public function fields(Request $request)
    {
        return [
            ID::make()->sortable(),
            Text::make('Title')->rules('required')->sortable(),
            Textarea::make('content')->rules('required')->hideFromIndex()
        ];
    }

Когда я создаю новую публикацию из пользовательского интерфейса панели управления Nova, я вижу поля. Когда я создаю, появляется сообщение об ошибке, в котором говорится, что требуется идентификатор пользователя. Итак, я попытался указать поле User вот так.

public function fields(Request $request)
    {
        return [
            ID::make()->sortable(),
            BelongsTo::make('User')->rules('required'),
            Text::make('Title')->rules('required')->sortable(),
            Textarea::make('content')->rules('required')->hideFromIndex()
        ];
    }

Когда я снова создаю новое сообщение, выдается другая ошибка, а именно «вызов функции-члена без globalScopes».

«Вызов функции-члена без globalScopes по null» в Laravel и Nova

Как я могу это исправить?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
1 282
1

Ответы 1

У меня была такая же проблема, потому что я забыл вернуть отношения в моей модели

У меня сначала было:

public function user()
{
    $this->belongsTo(User::class);
}

Вместо:

public function user()
{
    return $this->belongsTo(User::class);
}

Я тоже! Отличный улов :)

Daniel Bachhuber 26.07.2019 00:38

Это был второй раз, когда я наткнулся на это. Спасибо, что вспомнили о проблеме

Cristian 02.09.2020 20:29

Спасибо за ответ!

poldixd 20.10.2020 12:29

Другие вопросы по теме