Laravel php中的验证检查


Validiation check in Laravel php

我正在尝试在 PHP Laravel 中为用户名字段编写验证检查,该字段具有让用户知道出了什么问题的功能。我有几个带有正则表达式检查的 if 语句,但它不起作用。正则表达式的要求是:不能以"."开头,连续不超过1个".",不能大写,只有a-z,不能使用特殊字符。例如,像这样的"user.name"是有效的,但像"用户名"或".username"这样的东西都是无效的。到目前为止,我得到了这个:

 $oValidator = Validator::make(Input::all(), [
            'username' => 'required|regex:/^[a-zA-Z0-9]['w'.]+[a-zA-Z0-9]$/',
            'username' => 'required',
            'password' => 'required',
            'firstname' => 'required',
            'lastname' => 'required',
            'email' => 'required|email'
        ]);

我想为用户犯的错误提供反馈,例如:用户输入是".username",程序反馈应该是"不允许在字符串前面加点"。

您所

要做的就是包含一条自定义消息以进行验证。

 $this->validate($request, [
        'username' => 'required|regex:/^[a-zA-Z0-9]['w'.]+[a-zA-Z0-9]$/',
    ], ['regex' => 'Username cannot start with period(.), etc...]);

您的代码应如下所示。请记住,正则表达式自定义消息也将应用所有这些字段,而不仅仅是用户名,因此我会像上面一样分开用户名验证。

$oValidator = Validator::make(Input::all(), [
        'username' => 'required|regex:/^[a-zA-Z0-9]['w'.]+[a-zA-Z0-9]$/',
        'username' => 'required',
        'password' => 'required',
        'firstname' => 'required',
        'lastname' => 'required',
        'email' => 'required|email'
    ], ['regex' => 'Username cannot start with period, etc...']);