为了账号安全,请及时绑定邮箱和手机立即绑定

如何正确地向 Laravel 中的控制器发送 PUT/UPDATE 请求

如何正确地向 Laravel 中的控制器发送 PUT/UPDATE 请求

PHP
FFIVE 2021-07-01 14:00:51
所以,我目前正在尝试为我的用户配置文件更改密码功能,但我有一些关于PUT/ UPDATErequest 正确到达我的UserController 的问题。根据 Laravel 文档,我只需要在表单元素下方添加@csrf和@method('PUT'),但是当在控制器中发出转储请求时,我可以看到请求到达了我的控制器中的函数,但在提交时它不需要必要的字段。配置文件.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>控制器.phppublic 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 个字段。
查看完整描述

1 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

您可以通过向输入添加name属性来发送输入中的数据。为了让您的所有输入正常工作,您需要添加name到所有输入中。它的一个例子是这样的:

<input id="old_password" name="old_password" type="password" class="form-control" required autofocus >

请注意, id 不足以发送数据。对于输入标识,您需要name.


查看完整回答
反对 回复 2021-07-09
  • 1 回答
  • 0 关注
  • 291 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信