我目前正在处理用户可以更改其密码的 Profiles 页面 . 我在UserController中创建了一个新函数 changePassword()
public function changePassword(Request $request, User $employee) {
$validator = Validator::make($data, [
'password' => 'required|string|min:6|confirmed',
'password_confirmation' => 'required|string|min:6|same:password'
]);
if ($validator->fails()) {
Session::flash('error', "Fill-out the form correctly. Try again!");
return redirect()->back()->withErrors($validator);
}
$employee->password = bcrypt($request->password);
$employee->save();
return view('users.show', ['employee'=>$employee]);
}
我在User模型的资源路径上方的 web.php
中创建了这条新路线
Route::put('users/{user}', 'UserController@changePassword')->name('users.changePassword');
每次单击“提交”按钮,我都会收到 MethodNotAllowedHttpException
. 我认为问题是路线,但我不确定 . 除了发送电子邮件之外,是否还有Laravel功能,因为我希望用户在不使用电子邮件的情况下更改其密码 . 谢谢!
这是我的表格
{!! Form::model($employee, ['method'=>'PUT', 'route'=>['users.changePassword', $employee]]) !!}
4 回答
而不是放,在您的路线中使用post如下 .
在您的表单中,您传递了“_method”和CSRF令牌(如果您已禁用CSRF,则不需要CSRF,但我建议始终使用它)?
如果您使用表单和HTML类(ServiceProviders)在刀片中创建HTML和表单,请使用以下方法 .
希望能帮助到你!!
您需要在表单字段中添加
PUT
http动词 . 如果你使用laravelcollective:要么
你为路线设置参数吗?
试试这个....
这段代码在我的项目中使用laravel 5.3
ubahprofilecontroller.php
profile.blade.php
我希望我的回答可以帮助你....