Php 如何在laravel中使用密码确认更新现有用户表值

Php 如何在laravel中使用密码确认更新现有用户表值,php,laravel-5,Php,Laravel 5,我正在使用Laravel 5.6,将作为系统管理员更新我的用户表值(名称,电子邮件,密码) 刀片文件 <form action="{{route('users.update',$user->id)}}" method="POST"> {{method_field('PUT')}} {{csrf_field()}} <div class="form-group"> <label for="name">Name<

我正在使用Laravel 5.6,将作为系统管理员更新我的用户表值(
名称
电子邮件
密码

刀片文件

<form action="{{route('users.update',$user->id)}}" method="POST">
    {{method_field('PUT')}}
    {{csrf_field()}}

    <div class="form-group">
        <label for="name">Name</label>
        <input type="text" class="form-control" id="name" name="name" value="{{$user->name}}" >
    </div>
    <div class="form-group">
        <label for="email">Email</label>
        <input type="text" class="form-control" id="email" name="email" value="{{$user->email}}">
    </div>

    <div class="form-group">
        <label for="password">Password</label>
        <input type="password" class="form-control" id="password" name="password">
    </div>

    <div class="form-group">
        <label for="password_confirmation">Confirm Password</label>
        <input type="password" class="form-control" id="password_confirmation" name="password">
    </div>

    <button type="submit" class="btn btn-primary">Edit User</button>
</form>
问题

我的密码确认无效


这意味着我可以输入密码而无需确认和/或错误的确认密码。如何解决此问题?

您必须添加密码确认验证。要使其工作,您的第二个密码字段必须称为password\u confirmation(或foo和foo\u confirmation)

如前所述,您可以添加更多验证字段。如果验证失败,浏览器会将用户带回更新页面。错误在视图中可用的laravel errorbag中,即
$errors


有时
表示如果存在输入,则需要以下规则。当您想要更新用户信息时,如果访问者不想更新密码,他们可以将密码字段留空。在更新用户输入之前,取消设置密码字段(如果为空)

你验证你的字段吗?不…不验证你可以发布
dd($request->all())的结果?传递给App\Http\Controllers\Controller::validate()的参数1必须是Lightlight\Http\Request的实例,给定数组,在第118行的C:\Users\banda\Desktop\acxian\App\Http\Controllers\UserController.php中调用,并且已定义。您必须发布控制器的更大部分。有点不对劲,但没人能说出来,因为我们没有信息<代码>请求$Request
应为服务提供商。在你的例子中,它是一个数组。如何?发生此错误消息*(1/1)BadMethodCallException方法验证不存在。*是否
使用Illumb\Http\Request?尝试
$this->validate($request,['password'=>'有时| min:6 | confirm'])改为。现在不是错误,但数据不会在更新表单中更新。
public function update(Request $request, $id)
{
  $user = User::findOrFail($id);
  $user->name = $request->name;
  $user->uservalue = $request->uservalue;
  $user->email = $request->email;
  $user->password = bcrypt($request->input('password'));
  $user->save();

  return view('users.show')->withUser($user);
}
public function update(Request $request, $id)
{
  $user = User::findOrFail($id);
  $request->validate([
    'password' => 'sometimes|min:6|confirmed'
  ]);
  $user->name = $request->name;
  $user->uservalue = $request->uservalue;
  $user->email = $request->email;
  $user->password = bcrypt($request->input('password'));
  $user->save();

  return view('users.show')->withUser($user);
}