Laravel 如何解决[Route:update_pns][URI:update/{id}]缺少的必需参数

Laravel 如何解决[Route:update_pns][URI:update/{id}]缺少的必需参数,laravel,Laravel,我想创建更新功能。我创建表单,我在表单上显示数据,我创建按钮提交以提交数据。但在我提交后,我得到了错误 缺少[Route:update_pns][URI:update/{id}]所需的参数 是我的控制器显示数据 public function edit_pns($id) { $pns = Data_pns::findOrFail($id); if (!$pns) abort(404); $agama = DB::table('master_agama')->

我想创建更新功能。我创建表单,我在表单上显示数据,我创建按钮提交以提交数据。但在我提交后,我得到了错误

缺少[Route:update_pns][URI:update/{id}]所需的参数

是我的控制器显示数据

 public function edit_pns($id)
{
    $pns = Data_pns::findOrFail($id);
    if (!$pns)
    abort(404);
    $agama = DB::table('master_agama')->pluck('agama','id');
    $golongan = DB::table('master_golongan')->pluck('golongan','id');
    $jabatan = DB::table('master_jabatan')->pluck('nama_jabatan','id');
    $unit_kerja = DB::table('master_unit_kerja')->pluck('unit_kerja','id');
    $status_pegawai = DB::table('master_status_pegawai')->whereIn('id',[3,4])->pluck('status_pegawai','id');

    //dd($pns);
    return view('admin/edit/edit_pns', ['pns' => $pns ,'golongan'=>$golongan,
    'jabatan'=>$jabatan,'unit_kerja'=>$unit_kerja,'agama'=>$agama,'status_pegawai'=>$status_pegawai]);
}
它是我的控制器,用于存储要更新的数据

 public function update_pns(Request $request,$id)
{

    $pns  = User::find($id);


    $pns->nama                 = $request->input('nama');
    $pns->email                = $request->input('email');
    $pns->alamat               = $request->input('alamat');
    $pns->NIK                  = $request->input('NIK');
    $pns->tempat_lahir         = $request->input('tempat_lahir');
    $pns->tanggal_lahir        = $request->input('tanggal_lahir');
    $pns->pendidikan           = $request->input('pendidikan');
    $pns->nomor                = $request->input('nomor');
    $pns->agama_id             = $request->input('agama_id') ;
    $pns->status_pegawai_id    = $request->input('status_pegawai_id');
    $pns->unit_kerja_id        = $request->input('unit_kerja_id') ;


    dd($pns);
    // $pns->update();
    // return redirect('pns1')->with('success', 'Your info are updated');
}
这条路怎么走

Route::get('/edit_pns/{id}', 'AdminController@edit_pns' );
Route::post('/update/{id}', 'AdminController@update_pns')->name('update_pns');
这有什么不对吗

更新

<form method="POST" action="{{ route('update_pns') }}" class="form-horizontal form-label-left">
                @csrf

                <span class="section">Lengkapi Form Dibawah ini :</span>

                 <div class="item form-group">
                    <label class="control-label col-md-3 col-sm-3 col-xs-12" for="nama">NAMA <span class="required">*</span>
                    </label>
                    <div class="col-md-6 col-sm-6 col-xs-12">
                    <input id="nama" type="text" class="form-control @error('nama') is-invalid @enderror" name="nama" value="{{$pns->users->nama}}" required autocomplete="nama">

                        @error('nama')
                            <span class="invalid-feedback" role="alert">
                                <strong>{{ $message }}</strong>
                            </span>
                        @enderror
                    </div>
                  </div>



                <div class="item form-group">
                    <label class="control-label col-md-3 col-sm-3 col-xs-12" for="NIK">NIK <span class="required">*</span>
                    </label>
                    <div class="col-md-6 col-sm-6 col-xs-12">
                      <input id="NIK" type="text" class="form-control @error('NIK') is-invalid @enderror" name="NIK" value="{{$pns->users->NIK}}" required autocomplete="NIK" placeholder="3314********">

                        @error('NIK')
                            <span class="invalid-feedback" role="alert">
                                <strong>{{ $message }}</strong>
                            </span>
                        @enderror
                    </div>
                  </div>


                  <div class="item form-group">
                    <label class="control-label col-md-3 col-sm-3 col-xs-12" for="email">Email <span class="required">*</span>
                    </label>
                    <div class="col-md-6 col-sm-6 col-xs-12">
                        <input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{$pns->users->email}}" required autocomplete="email" placeholder="contoh@gmail.com" required>

                        @error('email')
                            <span class="invalid-feedback" role="alert">
                                <strong>{{ $message }}</strong>
                            </span>
                        @enderror
                    </div>
                  </div>



                  <div class="item form-group">
                    <label class="control-label col-md-3 col-sm-3 col-xs-12" for="tempat_lahir">Tempat Lahir <span class="required">*</span>
                    </label>
                    <div class="col-md-6 col-sm-6 col-xs-12">
                      <input id="tempat_lahir" type="text" class="form-control @error('tempat_lahir') is-invalid @enderror" name="tempat_lahir" value="{{$pns->users->tempat_lahir}}" required autocomplete="tempat_lahir">

                        @error('tempat_lahir')
                            <span class="invalid-feedback" role="alert">
                                <strong>{{ $message }}</strong>
                            </span>
                        @enderror
                    </div>
                  </div>



                  <div class="item form-group">
                    <label class="control-label col-md-3 col-sm-3 col-xs-12" for="tanggal_lahir">Tanggal Lahir <span class="required">*</span>
                    </label>
                    <div class="col-md-6 col-sm-6 col-xs-12">
                      <input id="tanggal_lahir" type="date" class="form-control @error('tanggal_lahir') is-invalid @enderror" name="tanggal_lahir" value="{{$pns->users->getOriginal('tanggal_lahir')}}" required autocomplete="tanggal_lahir">

                        @error('tanggal_lahir')
                            <span class="invalid-feedback" role="alert">
                                <strong>{{ $message }}</strong>
                            </span>
                        @enderror
                    </div>
                  </div>






                  <div class="item form-group">
                    <label for="jenis_kelamin" class="control-label col-md-3">Jenis Kelamin <span class="required">*</span></label>
                    <div class="col-md-6 col-sm-6 col-xs-12">


                        <td>
                        <label> Laki-Laki<input type="radio"  name="jenis_kelamin" value="L" checked>
                        </label>
                       </td>


                        <td>

                        <label> Perempuan
                          <input type="radio"  name="jenis_kelamin" value="P">
                        </label>
                       </td>



                        @error('jenis_kelamin')
                            <span class="invalid-feedback" role="alert">
                                <strong>{{ $message }}</strong>
                            </span>
                        @enderror
                    </div>
                  </div>

                   <div class="item form-group">
                    <label class="control-label col-md-3 col-sm-3 col-xs-12" for="pendidikan">Pendidikan Terakhir <span class="required">*</span>
                    </label>
                    <div class="col-md-6 col-sm-6 col-xs-12">
                    <input id="pendidikan" type="text" class="form-control @error('pendidikan') is-invalid @enderror" name="pendidikan" value="{{$pns->users->pendidikan}}" required autocomplete="pendidikan">

                        @error('pendidikan')
                            <span class="invalid-feedback" role="alert">
                                <strong>{{ $message }}</strong>
                            </span>
                        @enderror
                    </div>
                  </div>

                  <div class="item form-group">
                    <label class="control-label col-md-3 col-sm-3 col-xs-12" for="nomor">Nomor HP <span class="required">*</span>
                    </label>
                    <div class="col-md-6 col-sm-6 col-xs-12">
                      <input id="nomor" type="text" class="form-control @error('nomor') is-invalid @enderror" name="nomor" value="{{$pns->users->nomor}}" required autocomplete="nomor" placeholder="contoh 628572510294">

                        @error('nomor')
                            <span class="invalid-feedback" role="alert">
                                <strong>{{ $message }}</strong>
                            </span>
                        @enderror
                    </div>
                  </div> 

                  <div class="form-group">
                      <label class="control-label col-md-3 col-sm-3 col-xs-12">Agama <span class="required">*</span></label>
                      <div class="col-md-6 col-sm-9 col-xs-12">
                        <select name="agama_id" id="agama_id" class="form-control">
                          @foreach($agama as $masters => $agamas )
                               <option value="{{ $masters }}" @if ($pns->users->agama_id == $masters ) selected @endif>{{ $agamas }}</option>
                          @endforeach
                      </select>
                      </div>
                    </div>



                    <div class="item form-group">
                      <label class="control-label col-md-3 col-sm-3 col-xs-12" for="alamat">Alamat <span class="required">*</span>
                      </label>
                      <div class="col-md-6 col-sm-6 col-xs-12">
                        <textarea id="alamat" required="required" name="alamat" value="" class="form-control col-md-7 col-xs-12">{{$pns->users->alamat}}</textarea>
                      </div>
                    </div>

                    <div class="form-group">
                      <label class="control-label col-md-3 col-sm-3 col-xs-12">Unit Kerja <span class="required">*</span></label>
                      <div class="col-md-6 col-sm-9 col-xs-12">
                        <select name="unit_kerja_id" id="unit_kerja_id" class="form-control">
                            @foreach($unit_kerja as $units => $unit )
                            <option value="{{ $units }}" @if ($pns->users->unit_kerja_id == $units ) selected @endif>{{ $unit }}</option>
                            @endforeach
                        </select>
                      </div>
                    </div>

                    <div class="form-group">
                      <label class="control-label col-md-3 col-sm-3 col-xs-12">Status Pegawai <span class="required">*</span></label>
                      <div class="col-md-6 col-sm-9 col-xs-12">
                        <select name="status_pegawai_id" id="status_pegawai_id" class="form-control">
                            @foreach($status_pegawai as $status => $pegawai )
                            <option value="{{ $status }}" @if ($pns->users->status_pegawai_id == $status ) selected @endif>{{ $pegawai }}</option>
                            @endforeach
                        </select>
                      </div>
                    </div>

                <div class="form-group">
                  <div class="col-md-6 col-md-offset-3">

                    <button id="send" type="submit" class="btn btn-success">Submit</button>
                  </div>
                </div>
              </form>

@csrf
Lengkapi表Dibawah-ini:
纳米*
@错误('nama')
{{$message}}
@恩德罗
尼克*
@错误('NIK')
{{$message}}
@恩德罗
电子邮件*
@错误('电子邮件')
{{$message}}
@恩德罗
坦帕特拉希尔*
@错误('tempat_lahir')
{{$message}}
@恩德罗
唐加拉希尔*
@错误('tanggal_lahir')
{{$message}}
@恩德罗
杰尼斯·克拉明*
拉基拉基
佩伦普安
@错误('jenis_kelamin')
{{$message}}
@恩德罗
佩迪迪坎·特拉基尔*
@错误('pendidikan')
{{$message}}
@恩德罗
诺莫惠普*
@错误('nomor')
{{$message}}
@恩德罗
阿加玛*
@foreach($agamas作为$masters=>$agamas)
用户->agama_id==$masters)选择@endif>{{{$agamas}
@endforeach
阿拉马特*
{{$pns->users->alamat}
克尔贾单位*
@foreach($units_kerja作为$units=>$unit)
用户->unit_kerja_id==$units)选择@endif>{{{$unit}
@endforeach
Pegawai地位*
@foreach($status\u pegawai as$status=>$pegawai)
用户->状态\u pegawai\u id==$status)选择@endif>{{{$pegawai}
@endforeach
提交

您的路由需要一个参数才能解析,
{id}
,因此,您应该使用
路由(
路由('update_pns')
而不是
表单的
操作
中的
路由('update_pns',$idDesired)
,而不是
$idDesired
,由于您正在控制器中使用请求,您应该将要在
更新\u pns
方法上获取的id写为
$id

将路线更改为:

Route::post('/update', 'AdminController@update_pns')->name('update_pns');
对于你的控制器,你可以这样做

public function update_pns(Request $request)
{
    $pns  = User::find($request->id);
    ...
}
还可以为html创建一个隐藏输入,以获取请求id

<input tpye="hidden" value="{{ $id }}" name="id" />


post表单请更新我的问题您可以通过以下方式将整个模型作为参数传递:
action=“{{route('update_pns',$pns)}”
ok它解决了我的第一个问题,但现在我提交此表单,我没有找到404。这是我的错误路径?当您按下按钮时,您会按照浏览器栏上的要求看到哪个链接?也会删除每个文件