【问题标题】:"Call to a member function without globalScopes on null" in Laravel and NovaLaravel 和 Nova 中的“在 null 上调用没有 globalScopes 的成员函数”
【发布时间】:2019-02-04 06:20:34
【问题描述】:

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

我创建了一个名为 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 资源的菜单项已添加。

然后在 Post 资源的 fields 方法中,我为表单烫伤添加了这段代码。

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

当我从 Nova 仪表板 UI 创建新帖子时,我可以看到这些字段。当我创建时,它给了我一个错误,说需要用户 ID。因此,我尝试像这样指定 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 的成员函数”。

我该如何解决?

【问题讨论】:

    标签: php laravel laravel-nova


    【解决方案1】:

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

    我第一次拥有:

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

    代替:

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

    【讨论】:

    • 我也是!伟大的收获:)
    • 这是我第二次偶然发现这个问题。感谢您记住我的问题
    • 太棒了。这也是我的情况。谢谢!
    猜你喜欢
    • 2021-06-22
    • 1970-01-01
    • 2019-11-22
    • 2021-08-07
    • 2017-02-07
    • 1970-01-01
    • 2016-09-04
    • 2016-06-29
    • 2018-04-03
    相关资源
    最近更新 更多