当我在Laravel中使用验证功能时,我如何添加一个输入中允许的预定义字符串?例如,假设我希望Input仅包含以下内容之一:foo,bar,baz,我怎么能做到呢?
foo,bar,baz
$validator = Validator::make($credentials, [ 'profile' => 'required|max:255', // Here I want Predefined allowed values for it ]);
5gfr0r5j1#
最好像这样使用“in”验证规则:
$validator = Validator::make($credentials, [ 'profile' => ["required" , "max:255", "in:foo,bar,baz"] ]);
4uqofj5v2#
在Laravel文档中,建议在验证规则变大时将其放入数组中,我认为3个规则就足够了。我认为这会使内容更具可读性,但您不必这样做。我在下面添加了regex部分,它可以正常工作。我不太擅长正则化。请告诉我。
regex
$validator = Validator::make($credentials, [ 'profile' => ["required" , "max:255", "regex:(foo|bar|baz)"] ]);
tkclm6bt3#
在Laravel 9为我工作:
use Illuminate\Validation\Rule; Validator::make($data, [ 'toppings' => [ 'required', Rule::notIn(['sprinkles', 'cherries']), ], ]);
Docs: https://laravel.com/docs/9.x/validation#rule-not-in相反,您可以使用Rule::in(['foo', 'bar', 'baz'])
Rule::in(['foo', 'bar', 'baz'])
3条答案
按热度按时间5gfr0r5j1#
最好像这样使用“in”验证规则:
4uqofj5v2#
在Laravel文档中,建议在验证规则变大时将其放入数组中,我认为3个规则就足够了。我认为这会使内容更具可读性,但您不必这样做。我在下面添加了
regex
部分,它可以正常工作。我不太擅长正则化。请告诉我。tkclm6bt3#
在Laravel 9为我工作:
Docs: https://laravel.com/docs/9.x/validation#rule-not-in
相反,您可以使用
Rule::in(['foo', 'bar', 'baz'])