【问题标题】:Laravel + Lighthouse (GraphQL) custom mutation validationLaravel + Lighthouse (GraphQL) 自定义变异验证
【发布时间】:2020-01-18 10:51:56
【问题描述】:

之前我在 Laravel 中使用了纯 graphQL,我没有遇到任何问题,因为整个验证可以在 ../GraphQL/mutations/ 中的文件中完成。然而,我现在已经开始使用灯塔,而且很多事情都做了不同的事情。例如,我有这个突变:

type Mutation {
  createUser(
    name: String @rules(apply: ["required", "min:2"])
    age: Int!
  ): User @create
}

如何在此处添加自己的验证?例如,我希望用户的年龄至少比当前年份早 10 年。

【问题讨论】:

    标签: php laravel graphql laravel-lighthouse


    【解决方案1】:

    在docs 中的灯塔验证之后,您首先将@validator 添加到架构中。

    type Mutation {
      createUser(
        name: String
        age: Int!
      ): User @create @validator
    }
    

    然后您使用php artisan lighthouse:validator CreateUserValidator 创建该验证器。 在文件上,您进行 before laravel 验证rule。

    <?php
    
    namespace App\GraphQL\Validators;
    
    use Nuwave\Lighthouse\Validation\Validator;
    
    class CreateUserValidator extends Validator
    {
        /**
         * Return the validation rules.
         *
         * @return array<string, array<mixed>>
         */
        public function rules(): array
        {
            return [
                'name' => [
                    'required',
                    'min:2'
                ],
                'age' => [
                    'required',
                    'date',
                    'before:-10 years'
                ],
            ];
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-11-06
      • 2021-12-22
      • 2020-04-18
      • 2021-02-01
      • 2020-12-15
      • 2020-10-21
      • 2020-08-02
      • 2020-03-31
      • 2012-11-27
      相关资源
      最近更新 更多