Laravel Nova 显示多对多与枢轴

Laravel Nova show Many-to-Many with pivot

我有两张桌子show_types和场地。对于多对多关系,我确实创建了一个新的枢轴,如下所示

public function up()
{
    Schema::create('show_types_venues', function (Blueprint $table) {
        $table->integer('show_types_id')->unsigned();
        $table->foreign('show_types_id')->references('id')->on('show_types');

        $table->integer('venue_id')->unsigned();
        $table->foreign('venue_id')->references('id')->on('venues');
    });
}

并添加到模型中

ShowType.php
    public function venues()
    {
        return $this->belongsToMany(Venue::class, 'show_types_venues', 'show_types_id', 'venue_id');
    }


Venue.php
    public function shows()
    {
        return $this->belongsToMany(ShowType::class, 'show_types_venues', 'venue_id', 'show_types_id');
    }

我正在尝试使用

让这种关系出现在 Nova 上
ShowType.php
 public function fields(Request $request)
    {
        return [
            ID::make()->sortable(),
            Text::make('Name'),
            BelongsToMany::make('Venues', 'venues', Venue::class)
        ];

但是我的界面上没有任何显示。我怎样才能使它显示 select 多个我可以 add/edit 与此 showType 关联的场地? 我需要创建更多“手动”的东西吗?谢谢

由于没有 Nova 的文档,我使用 Bejacho's Belongs to Many Fields 做了一个解决方法,我们可以在其中轻松添加在 Nova 上显示为多重选择器的多对多关系。 与我上面提到的设置相同,我唯一做的就是按照他们的例子:

use Benjacho\BelongsToManyField\BelongsToManyField;

public function fields(Request $request){
    return [
        ..., //If you are using with BelongsToMany native Field, put this field after

        BelongsToManyField::make('Role Label', 'roles', 'App\Nova\Role'),
    ];
}

并且完美地满足了我的需求!