Php Laravel和Nova中的“调用成员函数而不使用null上的globalscope”

Php Laravel和Nova中的“调用成员函数而不使用null上的globalscope”,php,laravel,laravel-nova,Php,Laravel,Laravel Nova,我计划使用Laravel和Nova开发一个web应用程序。Nova是最近推出的Laravel CMS包。由于这是一项新技术,我在使用它时遇到了一个问题。我无法为资源中的外键声明字段 我创建了一个名为Post的新模型,运行artisan命令生成模型,这是Post migration类的定义 class CreatePostsTable extends Migration { /** * Run the migrations. * * @return void

我计划使用Laravel和Nova开发一个web应用程序。Nova是最近推出的Laravel CMS包。由于这是一项新技术,我在使用它时遇到了一个问题。我无法为资源中的外键声明字段

我创建了一个名为Post的新模型,运行artisan命令生成模型,这是Post migration类的定义

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资源的菜单项

然后在Post资源的fields方法中,我为表单Bullow折叠添加了此代码

public function fields(Request $request)
    {
        return [
            ID::make()->sortable(),
            Text::make('Title')->rules('required')->sortable(),
            Textarea::make('content')->rules('required')->hideFromIndex()
        ];
    }
当我从Nova dashboard UI创建新帖子时,我可以看到这些字段。当我创建时,它会给我一个错误,说需要用户id。因此,我尝试像这样指定用户字段

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的成员函数


如何修复它?

我也遇到了同样的问题,因为我忘了在模型中返回关系

我首先有:

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

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

我有同样的问题,因为我忘了在我的模型中返回关系

我首先有:

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

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

我也是!重大收获:这是我第二次偶然发现这个。谢谢你记得我的答案!我也是!重大收获:这是我第二次偶然发现这个。谢谢你记得我的答案!