key*_*uri 1 validation laravel
我想验证这样的单个变量$name = "example name",但我没有办法处理它,然后我决定将其转换为这样的数组$nameArr = ['name' => 'example name'];,验证器是
$rules =
$this->validate($nameArr, [
'name' => 'required|max:10|regex:/^[a-zA-Z0-9]+$/u',
], [
'name.required' => 'name is empty',
'name.max' => 'name must be more less than 10 letters',
'name.regex' => 'invalid name'
]
);
Run Code Online (Sandbox Code Playgroud)
但 Laravel 给出了这个错误
传递给 App\Http\Controllers\Controller::validate() 的参数 1 必须是 Illuminate\Http\Request 的实例,给定字符串
正确,validateon 函数Controller来自Illuminate\Foundation\Validation\ValidatesRequests并要求第一个参数是请求对象。
如果要验证数组,则必须手动创建验证器。
$validator = Validator::make($nameArr,
[
'name' => 'required|max:10|regex:/^[a-zA-Z0-9]+$/u',
],
[
'name.required' => 'name is empty',
'name.max' => 'name must be more less than 10 letters',
'name.regex' => 'invalid name'
]
);
if ($validator->fails()) {
dd($validator->errors());
}
Run Code Online (Sandbox Code Playgroud)