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

Php 如何正确地向Laravel中的控制器发送PUT/UPDATE请求,php,laravel,Php,Laravel,因此,我目前正在尝试对我的用户配置文件进行更改密码功能,但我遇到了一些问题,这些问题与正确到达我的用户控制器的PUT/UPDATE请求有关 根据Laravel文档,我只需要在表单元素下方添加@csrf和@method('PUT'),但当在控制器中发出转储请求时,我可以看到请求到达控制器中的函数,但在提交时它不带必要的字段 profile.blade.php <form method="POST" action="{{route('update-password')}}"> @

因此,我目前正在尝试对我的用户配置文件进行更改密码功能,但我遇到了一些问题,这些问题与正确到达我的用户控制器的
PUT
/
UPDATE
请求有关

根据Laravel文档,我只需要在表单元素下方添加
@csrf
@method('PUT')
,但当在控制器中发出转储请求时,我可以看到请求到达控制器中的函数,但在提交时它不带必要的字段

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>
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
添加到所有输入中。例如:

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


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

谢谢!所有字段现在都提交给控制器。