在 Laravel Nova 中显示附加字段 table 的问题

Problem in showing additional field of pivot table in Larvel Nova

我在管理端使用 Laravel Nova。 我有这个问题,在我的数据透视 table 中,我添加了额外的字段。 我有用户 table 和事件 table。用户可以有多个事件,事件可以有多个用户。所以我为 2 个模型创建了一个枢轴 table。但我想要用户事件的状态。所以我在 pivot table.

中添加了额外的状态字段

我现在的问题是 Laravel Nova。 在我的活动资源中,我有这个:

BelongsToMany::make('Pending Users', 'pendingUsers', 'App\Nova\User'),

它显示另一个 table 待定客户。我已经可以获取特定事件中的用户列表,但无法向 table 显示用户事件的状态。如果用户已获批准或仍处于待定状态。

哪种策略最适合我的情况?我正在考虑为事件和用户制作模型。

我不知道如何在 Laravel Nova 的 BelongsToMany 中显示 pivot table 的附加字段。它只是显示了我在 Nova 的用户资源中添加的内容。比如身份证和名字。但是我不知道用户事件的状态会在哪里显示。我想在 BelongsToMany 事件的 table 中向用户显示它。

我通过定义 ->withPivot('filed name)' 关系来完成这项工作,这让我很长一段时间都发疯了。

BelongsToMany::make('your_relationship')
    ->fields(function () {
        return [
            Text::make('your_text'),
        ];
    })

你的亲戚会在这里 就像我之前说的那样

public function users()
{
  return $this->belongsToMany(User::class)->withPivot('filed name');
}

您需要确保在两个模型中都定义了关系,然后让 Nova 知道您想要显示哪些字段,如下所示:

在您的活动资源中:

BelongsToMany::make('Users')
->fields(function() {
    return [
        Text::make('status')
    ];
}),

在您的事件模型中:

public function users()
{
  return $this->belongsToMany(User::class)->withPivot('status');
}

在您的用户模型中:

public function events()
{
  return $this->belongsToMany(Event::class)->withPivot('status');
}