[英]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.