I'm not sure, but I think there is no native way to do this in Laravel. If so, you can implement a custom "hash validator":
class CustomValidator extends \Illuminate\Validation\Validator { public function validateHash($attribute, $value, $parameters) { $expected = $parameters[0]; return Hash::check($value, $expected); } }
Register it with the supplier:
class AppServiceProvider extends ServiceProvider { public function boot() { require_once __DIR__ . '/../Http/helpers.php'; Validator::resolver(function($translator, $data, $rules, $messages) { return new CustomValidator($translator, $data, $rules, $messages); }); }
And use it in the form request:
class MyFormRequest extends FormRequest { public function rules() { $password = Auth::user()->password; return [ 'old_password' => "required|hash:" . $password ] }
Documentation link: http://laravel.com/docs/5.0/validation#custom-validation-rules
source share