gpt4 book ai didi

php - 向 Laravel 表单添加自定义验证错误

转载 作者:行者123 更新时间:2023-12-02 21:28:07 25 4
gpt4 key购买 nike

我设置了一个基本表单来允许用户更改其电子邮件地址,并且在更改电子邮件之前我会对其进行以下验证:

// Set up the form validation
$validator = Validator::make(
Input::all(),
array(
'email' => 'email|unique:users',
'password' => 'required'
)
);

// If validation fails, redirect to the settings page and send the errors
if ($validator->fails())
{
return Redirect::route('settings')->withErrors($validator)->withInput();
}

这工作正常,但是在这个基本验证之后我想检查用户是否提供了正确的密码。为此,我使用 Laravel 的基本身份验证库执行以下操作:

// Find the user and validate their password
$user = Auth::user();

if (!Auth::validate(array('username' => $user->username, 'password' => Input::get('password'))))
{
die("failed to authenticate");
}

我不想自己处理逻辑来告诉用户他们的密码不正确,我宁愿在 password 输入中添加一个表单错误,以便它像常规表单验证一样显示。像这样:

if (!Auth::validate(array('username' => $user->username, 'password' => Input::get('password'))))
{
$validator->addError('password', 'That password is incorrect.');
return Redirect::route('settings')->withErrors($validator)->withInput();
}

这样,错误的密码错误将显示在我的密码输入旁边,并且看起来像正确的表单验证。

我该怎么做?

最佳答案

请参阅达伦·克雷格的回答。

实现它的一种方法。

// inside if(Auth::validate)
if(User::where('email', $email)->first())
{
$validator->getMessageBag()->add('password', 'Password wrong');
}
else
{
$validator->getMessageBag()->add('email', 'Email not found');
}

关于php - 向 Laravel 表单添加自定义验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22158580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com