无法理解在哪里注册字段

Trouble understanding where to register fields

我正在安装这个 Nova 包:https://novapackages.com/packages/classic-o/nova-media-library 并且无法确定将这段代码块放在哪里:

向资源添加字段:

use ClassicO\NovaMediaLibrary\MediaLibrary;

class Post extends Resource
{
    ...
     public function fields(Request $request)
        {
            return [
                ...
                MediaLibrary::make('Image'),
                ...
            ];
        }
    ...
}

我环顾四周,但对 Laravel 还很陌生,所以我有点困惑。我知道这是一个字段,所以我看了这里:https://nova.laravel.com/docs/1.0/resources/fields.html#place-field,但不太了解可以注册这些的位置。

我很欣赏这里的任何见解或背景。谢谢!

对于 Laravel Nova,他们试图让一切变得尽可能简单。因此,Resource 是将所有功能添加到 Model 的原因,而 Model 代表(以某种方式)数据库中的 table。资源只是从 Resource 扩展而来的 class,并且具有一些功能才能完全发挥作用。

因此,在您的示例中,您应该有一个名为 PostModel,显示的代码是一个名为 Post 的不完整 Resource(这就是为什么您选择这些功能前后三点)。当您阅读 Resource 文档时,您会看到函数 fields() 总是 returns 一个 Fields 的数组。代码

MediaLibrary::make('Image')

确实是一个字段,这就是为什么它在数组中的原因。您拥有的代码只是一个示例,其目的是说明 MediaLibrary 字段可以用作任何其他字段。我强烈建议您花足够的时间阅读有关 Models, Eloquent, Resources and Fields.

的内容