如何将输入与 laravel 验证中的某些特定数据进行比较

How can I compare the inputs to some specific data in laravel validation

我正在制作一个网络应用程序,我希望只有那些知道特殊代码的人才能注册。我应该怎么做或检查用户在注册表单上输入的代码..RegisterController 中的验证器函数有这个代码:- .

    protected function validator(array $data)
{ 
     return Validator::make($data, [
        'name' => 'required|max:255',
        'email' => 'required|email|max:255|unique:users',
        'place' => 'required|max:255',
        'password' => 'required|min:6|confirmed',
                ]);

}

我应该加入什么?

如果您想将注册码存储在单独的 table 中,您可以在验证器中执行此操作。

codes
    id - integer
    code - string

验证逻辑

'code' => 'required|exists:codes',

如果您想使用自定义列名进行验证,那么您可以这样做

'code' => 'required|exists:codes,columnName',

如果代码是简单的硬编码值,那么您可以编写自定义验证规则并使用它。

AppServiceProvider

boot方法中添加这个
Validator::extend('registration_code', function ($attribute, $value, $parameters, $validator) {
    return $value === 'supersecretcode';
});

验证逻辑

'code' => 'required|registration_code,

如果您使用控制器,您可以使用它!

public function validator(Request $request)
{
    // validation

        $this->validate($request, array( 
            'title' => 'required|max:255',
            'slug' => 'required|alpha_dash|min:5|max:255|unique:posts,slug',               
            'body' => 'required'

            ));