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