我正在使用Laravel Nova作为我的管理员。 我有一个问题,我在数据透视表中添加了其他字段。 我有用户表和事件表。用户可以有多个事件,而事件可以有多个用户。因此,我为这两个模型创建了一个数据透视表。但是我要用户事件的状态。因此,我在数据透视表中添加了状态附加字段。
我现在的问题是Laravel Nova。 在我的活动资源中,我有这个:
SELECT JSON_VALUE(a.data, '$.*.rid10')
FROM JSON_DOCUMENTS a;
它显示了待处理客户端的另一个表。我已经可以获取特定事件中的用户列表,但无法在表中显示用户事件的状态。如果用户已批准或仍在等待中。
哪种方法最适合我?我正在考虑为事件和用户建立模型。
我不知道如何在Laravel Nova的BelongsToMany中显示数据透视表的其他字段。它仅显示了我在Nova用户资源中添加的内容。像ID和名称一样。但是我不知道用户事件的状态将显示在哪里。我想在向用户显示的BelongsToMany事件表中显示它。
答案 0 :(得分:1)
您需要确保在两个模型中都定义了关系,然后让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');
}
答案 1 :(得分:0)
我通过定义->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');
}