如何在Laravel 5中验证当前密码,新密码和新密码的确认? - php

我已经在UserController@getProfilePasswordUserController@postProfilePassword中创建了密码路由,视图和方法

目前,如果我填写new_password字段,它会被散列并正确提交到数据库,那么我可以使用新密码登录。

但是我需要能够验证new_passwordnew_password_confirm以确保它们相同,并还要验证用户的当前密码。

我怎样才能做到这一点?

编辑:我添加了$this->validate的方法,但现在我不断收到错误The password confirmation confirmation does not match.,即使它们确实匹配,因为我使用的是简单的密码。另外,我认为我需要手动检查当前密码,因为validator不会为我这样做。

public function getProfilePassword(Request $request) {
    return view('profile/password', ['user' => Auth::user()]);
}

public function postProfilePassword(Request $request) {
    $user = Auth::user();

    $this->validate($request, [
        'old_password'          => 'required',
        'password'              => 'required|min:4',
        'password_confirmation' => 'required|confirmed'
    ]);

    $user->password = Hash::make(Input::get('new_password'));
    $user->save();
}

这是观点

<form action="{{ route('profile/updatepassword') }}" method="post" enctype="multipart/form-data">
    <div class="form-group">
          <label for="name">Current Password</label>
          <input type="password" name="old_password" class="form-control" id="old_password">
    </div>
    <div class="form-group">
          <label for="name">Password</label>
          <input type="password" name="password" class="form-control" id="password">
    </div>
    <div class="form-group">
          <label for="name">New Password</label>
          <input type="password" name="password_confirmation" class="form-control" id="password_confirmation">
    </div>
    <button type="submit" class="btn btn-primary">Change Password</button>
    <input type="hidden" value="{{ Session::token() }}" name="_token">
 </form>

参考方案

有一个Hash::check()功能,可让您检查用户输入的旧密码是否正确。

usage

if (Hash::check("param1", "param2")) {
 //add logic here
}

param1 - user password that has been entered on the form
param2 - old password hash stored in database

如果正确输入了旧密码,它将返回true,您可以相应地添加逻辑

为了使new_passwordnew_confirm_password相同,可以在表单请求中添加验证,例如

'new_password' => 'required',
'new_confirm_password' => 'required|same:new_password'

如何在Laravel 4.2中删除或取消设置cookie - php

我在这里浏览了文档cookie laravel 4.2但是我无法检查如何在laravel 4.2中删除​​或取消设置cookie?即使在laravel 4.0中也有Cookie::forget('cookieKey');方法。 参考方案 您仍然需要像这样发送带有响应的cookie$cookie = Cookie::forget('…

Laravel 5 dataTables,带有控制器功能的初始化表 - php

我正在尝试创建一个用户的dataTable,其中每一行都有一个下拉子行,其中包含用户权限的复选框。因此,“超级”管理员可以动态地单击用户并在表中分配其特权。首先,不确定这是否是一个好主意,请随时提出一个更好的方法。也许每行一个简单的弹出模式会更容易,但是现在我已经决定这是一种很酷的方法,所以我继续进行。但是,目前尝试用AJAX初始化dataTable令我感到…

Laravel:验证表单中的名称输入 - php

我正在使用laravel并具有一个表单。如何验证表单中输入字段的名称。因此无法在该字段中输入随机数。这只是一个简单的输入字段:<div class="col-md-6 col-sm-6"> <label>First Name: </label> </div> <div class=&#…

Div单击与单选按钮相同吗? - php

有没有一种方法可以使div上的click事件与表单环境中的单选按钮相同?我只希望下面的div提交值,单选按钮很丑代码输出如下:<input id="radio-2011-06-08" value="2011-06-08" type="radio" name="radio_date&#…

PHP:如何从JSON数组获取属性? - php

我有以下JSON数组:使用PHP,如何从上面的JSON数组中获取geometery->location->lat&lng值?例如(伪代码):<?php $json = { "status": "OK", "results": [ { "types": [ �…