所以,我当前正在尝试将密码功能更改为我的用户配置文件,但是我有一些有关PUT
/UPDATE
请求正确到达我的 USERCONTROLLER 的问题。
根据Laravel文档,我只需要在表单元素以下添加@csrf
和@method('PUT')
,但是当在控制器中进行转储请求时,我可以看到请求到我的控制器中的函数,但提交时不需要必要字段。<<<<<<<<<<<<<<<<<</p>
profile.blade.php
<form method="POST" action="{{route('update-password')}}">
@csrf @method('PUT')
<div class="form-group row">
<label for="old_password" class="col-md-2 col-form-label">{{ __('Current password') }}</label>
<div class="col-md-6">
<input id="old_password" type="password" class="form-control" required autofocus >
</div>
</div>
<div class="form-group row">
<label for="new_password" class="col-md-2 col-form-label">{{ __('New password') }}</label>
<div class="col-md-6">
<input id="new_password" type="password" class="form-control" required autofocus >
</div>
</div>
<div class="form-group row">
<label for="password_confirm" class="col-md-2 col-form-label">{{ __('Confirm password') }}</label>
<div class="col-md-6">
<input id="password_confirm" type="password" class="form-control" required autofocus>
</div>
</div>
<div class="form-group login-row row mb-0">
<div class="col-md-8 offset-md-2">
<button type="submit" class="btn btn-primary">
{{ __('Submit') }}
</button>
</div>
</div>
</form>
controller.php
public function updatePassword(Request $request){
$this->validate($request, [
'old_password' => 'required',
'new_password' => 'required|confirmed',
'password_confirm' => 'required'
]);
$user = User::find(Auth::id());
if (!Hash::check($request->current, $user->password)) {
return response()->json(['errors' => ['current'=> ['Current password does not match']]], 422);
}
$user->password = Hash::make($request->password);
$user->save();
return $user;
}
当前在提交字段时仅提交字段
_token: UcJwliogSngHauWCNuDvRtRnZy8NP4lrQeNoZQGG
_method: PUT
只是将重定向(302(返回个人资料页面。
它应提交所有3个字段。
您可以通过向其添加name
属性来发送输入中的数据。为了使所有输入正常工作,您需要向所有输入添加name
。这样的例子是:
<input id="old_password" name="old_password" type="password" class="form-control" required autofocus >
请注意,ID不足以发送数据。对于输入标识,您需要name
。