laravel 验证匹配字符串

ehxuflar  于 2023-01-03  发布在  其他
关注(0)|答案(3)|浏览(147)

当我在Laravel中使用验证功能时,我如何添加一个输入中允许的预定义字符串?
例如,假设我希望Input仅包含以下内容之一:foo,bar,baz,我怎么能做到呢?

$validator = Validator::make($credentials, [
      'profile' => 'required|max:255', // Here I want Predefined allowed values for it
]);
5gfr0r5j

5gfr0r5j1#

最好像这样使用“in”验证规则:

$validator = Validator::make($credentials, [
      'profile' => ["required" , "max:255", "in:foo,bar,baz"]  
]);
4uqofj5v

4uqofj5v2#

在Laravel文档中,建议在验证规则变大时将其放入数组中,我认为3个规则就足够了。我认为这会使内容更具可读性,但您不必这样做。我在下面添加了regex部分,它可以正常工作。我不太擅长正则化。请告诉我。

$validator = Validator::make($credentials, [
      'profile' => ["required" , "max:255", "regex:(foo|bar|baz)"]  
]);
tkclm6bt

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'])

相关问题