在我的表单中,我有两个字段pass
和pass_repeat
。在浏览器端,我使用javascript验证它。在服务器端,我想检查它们是否相同。如何使用request()->validate()
法?
我可以检查与php
相等,但是,我想知道request()->validate()
是否可能。
即使是进一步搜索的关键字也值得赞赏。
注:我的尝试:
$result = request()->validate([
'email' => ['required', 'email'],
'password' => ['required', 'string', 'max:30', 'min:8'],
'password_repeat' => ['required', 'string', 'max:30', 'min:8']
]);
if ($result['password' != $result['password_repeat'] || $result['password_repeat'] == '' || $result['password'] == '')
{
abort();
}
谢谢。
只需将表单中输入'password_repeat'的名称更改为'password_confirmation',并使用验证器'confirmed'
$result = request()->validate([
'email' => ['required', 'email'],
'password' => ['required', 'string', 'max:30', 'min:8','confirmed'],
]);
你这样做的方式是错误的,laravel有confirmed rule
,可以用于确认目的,你应该添加pass_confirmation
输入并通过表单传递给控制器,并使用confirmed
规则为pass
输入。