如何在 Prisma Client 中获取枚举类型?

29

我可以在客户端获取模型的枚举值列表,就像获取选择选项一样吗?

示例枚举

enum user_type {
    superadmin
    admin
    user
}

我希望在客户端把这些内容作为选项卡展示。如何将它们获取并以JSON格式呈现?


另一种使用graphql的方法在这里: https://dev59.com/srbna4cB1Zd3GeqPXjxn#57877222 - Safi Habhab
2个回答

45
您可以像这样在应用程序代码中访问user_type枚举:
import {user_type } from "@prisma/client";

let foo: user_type = "superadmin";
// use like any other type/enum

你计划如何将这个连接到客户端或发送到客户端,由你决定。通常 Prisma 类型位于代码的服务器端,而不是客户端,因此直接在客户端代码中导入 prisma 类型可能很困难。

这就是 Prisma 在内部定义 user_type 枚举的方式。

// file: node_modules/.prisma/client/index.d.ts
export const user_type: {
  superadmin: 'superadmin',
  admin: 'admin',
  user: 'user'
};

如果您愿意,您可以将此内容复制并粘贴到您的客户端代码中。


4
当您生成Prisma Client时,它会为您的模型和枚举类型生成TypeScript接口。
您可以这样做。
import { PrismaClient, user_type } from '@prisma/client'

这将为您提供user_type类型声明


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接