【问题标题】:GraphQL with LARAVEL Lighthouse PHP - How to hide attributes?带有 LARAVEL Lighthouse PHP 的 GraphQL - 如何隐藏属性?
【发布时间】:2020-06-19 01:45:43
【问题描述】:

标题说明了一切。

如果我有这样的事情:

type Model {
  id
  name
}

并且只有特定用户才能访问ID 字段。我该怎么做?

如果特定用户只能访问 Model > relationship 数据,情况也是如此。如何根据用户能力隐藏属性?

【问题讨论】:

    标签: laravel graphql laravel-lighthouse


    【解决方案1】:

    您可以使用@can 指令,例如:

    type Model {
        id: ID! @can(...)
    }
    

    【讨论】:

    • 你能给我一个更详细的答案吗?例如,如果您有用于关系数据的 @hasMany 指令,您如何只返回给定用户可以看到的记录?
    • 另外,错误Type 'Int' on 'attribute_name' can not be found in the schema. 如果我在你的答案中显示的类型属性之后使用'@can'
    • @CecilyMiller 如果您需要像 HasMany 指令一样从关系中删除记录,您可以使用范围来减少返回的模型。
    • @CecilyMiller 你的第二个问题很难在没有看到一些实际代码的情况下说得更多。
    猜你喜欢
    • 2021-02-18
    • 2020-10-22
    • 2020-04-25
    • 2020-08-11
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    相关资源
    最近更新 更多