Laravel - 根据字符串验证值

时间:2018-01-26 15:56:39

标签: laravel

我在Laravel 5.5控制器中运行一些基本的验证,就像这样......

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

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

3 个答案:

答案 0 :(得分: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 :(得分:1)

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

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

答案 2 :(得分:0)

你可以这样做:

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