Laravel - 根据字符串验证值

问题描述 投票:0回答:3

我正在 Laravel 5.5 控制器中运行一些基本验证,如下所示...

                   $this->validate($request, [
                        'name' => 'required|max:30',
                        'email' => 'required|unique:users|email',
                        'password' => 'required|max:20',
                        'mykey' => 'required',
                    ]);

有没有办法检查“mykey”是否与我保存的 php 字符串匹配? 我知道我可以做一个 if 语句并比较它们,但想知道是否有办法在验证本身中做到这一点?

php laravel laravel-validation
3个回答
2
投票

您可以使用 in 规则,这适用于 n 个值

$request->validate([
    'name' => 'required|max:30',
    'email' => 'required|unique:users|email',
    'password' => 'required|max:20',
    'mykey' => [
        Rule::in([env('MY_KEY'),config('app.another_key')]),
    ]    
]);

1
投票

Laravel 提供了

regex
选项进行验证。根据字符串比较的复杂性,它可能很有用:

https://laravel.com/docs/5.5/validation#rule-regex


0
投票

你可以遵循这个规则:

$key = "my_saved_key"
$request->validate([
    'name' => 'required|max:30',
    'email' => 'required|unique:users|email',
    'password' => 'required|max:20',
    'mykey' => 'in:' . $key,
    ]    
]);
© www.soinside.com 2019 - 2024. All rights reserved.