【问题标题】:Laravel Fortify validation errors not workingLaravel Fortify 验证错误不起作用
【发布时间】:2021-03-12 09:30:44
【问题描述】:

我从一周开始就在尝试 Fortify,但我在两个级别上遇到了同样的问题。

问题是当我尝试更新用户密码时,它没有显示验证错误(我的意思是,出于测试目的,我将字段留空)。

当我尝试更新用户信息(姓名、电子邮件......当我将它们留空以进行测试时)时也是如此。

当然,我尝试迭代 $errors 变量以在我的视图上显示错误消息,但什么也没有。我也尝试过使用 @error Blade 指令,但也没有。

这是我的更新密码视图,我在其中执行 PUT 提交到由 Fortify 定义的 user-password.update 路由

感谢您的帮助。

【问题讨论】:

  • 如果在可填充属性中设置了密码,请在 App\Models\User 中检查您的用户模型
  • 是的,当然,它是在可填充属性中设置的,这是关于验证的,看起来它不起作用
  • 您可以随时通过在调用验证器之前放置 dd() 或 info() 来检查控制器是否被所需数据击中。只需检查控制器内的验证器是否接收到表单数据。如果您使用请求对象来处理表单数据,请确保将请求对象(例如 ChangePasswordRequest $changePasswordRequest)注入方法而不是常规请求(例如,请求 $request)。

标签: php laravel fortify


【解决方案1】:

您可以在刀片中使用以下代码

@if ($errors->updatePassword->any())
     <ul>
         @foreach($errors->updatePassword->all() as $error)
            <li>{{ $error }}</li>
         @endforeach
     </ul>
@endif

这个“$errors->updatePassword”是包名,可以在“app/Actions/Fortify/UpdateUserPassword.php”中找到

【讨论】:

  • 谢谢!!现在使用这种方法可以工作??
  • 你知道如何找到登录错误的错误信息包名
【解决方案2】:

它的工作

@if ($errors->updatePassword->any())
 <ul>
     @foreach($errors->updatePassword->all() as $error)
        <li>{{ $error }}</li>
     @endforeach
 </ul>
@endif

或者您可以在“app/Actions/Fortify/UpdateUserPassword.php”中使用validate()更改方法validateWithBag('updatePassword')

【讨论】:

  • 你的答案和@MNI Noyon 的答案有什么区别?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-02
  • 1970-01-01
  • 2018-06-19
  • 1970-01-01
  • 2021-08-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多