我正在使用 Laravel Nova 开发一个 Web 应用程序。Nova 是一个全新的 Laravel CMS 系统。我现在在多对多关系和呈现数据方面遇到了麻烦。
我有一个包含以下数据的用户表
users - id, name, email, role
然后我有一个包含以下数据的部门表。
departments - id, name, code
它们与这样的数据透视表具有多对多的关系。
departments_users - id, department_id, users_id
如果我在字段方法中添加了这个,在用户资源中
public function fields(Request $request)
{
return [
ID::make()->sortable(),
//other fields
BelongsToMany::make("Departments")
];
}
由于我在 User 资源中添加了 BelongsToMany,如果我转到用户详细信息页面,我会看到类似这样的内容。
基本上我的意思是显示用户部门列表的选项和将部门附加到用户的选项。但我不想一直显示该选项/列表。我只想根据角色显示它。我的意思是在字段方法中是这样的。请阅读以下代码中的注释。
public function fields(Request $request)
{
return [
ID::make()->sortable(),
//other fields
BelongsToMany::make("departments")//Do this only if the user role is "staff"
];
}