& quot; вызов функции-члена без globalScopes on null & quot; в Ларавеле и Новой

Я планирую разработать веб-приложение с использованием 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.

введите описание изображения здесь

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

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

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

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».

введите описание изображения здесь

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

0

Решение

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

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

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

Вместо:

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]