簡體   English   中英

Laravel + Lighthouse (GraphQL) 自定義變異驗證

[英]Laravel + Lighthouse (GraphQL) custom mutation validation

早些時候我為 Laravel 使用了純 graphQL,我沒有遇到任何問題,因為整個驗證可以在 ../GraphQL/mutations/ 中的文件中完成。 然而,我現在已經開始使用燈塔了,很多事情的處理方式都不一樣。 例如,我有這個突變:

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

如何在此處添加我自己的驗證? 例如,我希望用戶的年齡至少比當年早 10 年。

早些時候,我為Laravel使用了純graphQL,但我沒有任何問題,因為整個驗證可以在../GraphQL/mutations/中的文件中完成。 但是,我現在已經開始使用燈塔,許多事情都以不同的方式進行。 例如,我有此突變:

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

如何在此處添加自己的驗證? 例如,我希望用戶的年齡至少比當前年份早10年。

按照文檔中的燈塔驗證,您首先將@validator添加到架構中。

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

然后您使用php artisan lighthouse:validator CreateUserValidator創建該驗證php artisan lighthouse:validator CreateUserValidator 在文件上,您執行之前的laravel 驗證規則

<?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'
            ],
        ];
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM