首页 > 解决方案 > 试图在视图刀片中获取非对象的属性“id”

问题描述

这是我的代码我该怎么办?未在我的项目中读取此代码有什么问题?我写这段代码错了吗?试图获取非对象的属性“id”(查看:C:\xampp\htdocs\rezkastore\resources\views\pages\daftar_supplier.blade.php)

@foreach($daftar_supplier as $daftar_supplier)
    <div class="modal fade" id="editModal-{{ $daftar_supplier->id }}" tabindex="-1" role="dialog" aria-labelledby="addModalLabel" aria-hidden="true">
       <div class="modal-dialog modal-dialog-centered" role="document">
          <div class="modal-content">
                <div class="modal-header">
                  <h5 class="modal-title mb-0" id="addModalLabel">Tambah Data Pelanggan</h5>
                </div>
              <div class="modal-body">
                 <!-- Card body -->
                <form role="form" action="{{ route('daftar_supplier.update', $daftar_supplier->id) }}" method="POST">
                  @csrf
                  @method('POST')
                    <!-- Input groups with icon -->
                  <div class="form-group row">
                      <label for="addNamaSupplier" class="col-md-2 col-form-label form-control-label">Nama</label>
                      <div class="col-md-10">
                        <input class="form-control" type="nama" value="{{ $daftar_supplier->nama_supplier }}" id="updateNamaSupplier" name="updateNamaSupplier" required>
                      </div>
                    </div>
                    <div class="form-group row">
                      <label for="updateAlamat" class="col-md-2 col-form-label form-control-label">Alamat</label>
                      <div class="col-md-10">
                        <input class="form-control" type="alamat" value="{{ $daftar_supplier->alamat }}" id="updateAlamat" name="updateAlamat" required>
                      </div>
                    </div>
                    <div class="form-group row">
                      <label for="updateNoTelp" class="col-md-2 col-form-label form-control-label">No.Telp</label>
                      <div class="col-md-10">
                        <input class="form-control" type="notelp" value="{{ $daftar_supplier->no_telp }}" id="updateNoTelp" name="updateNoTelp" required>
                      </div>
                    </div> 
                    <div class="form-group row">
                      <label for="updateEmail" class="col-md-2 col-form-label form-control-label">Email</label>
                      <div class="col-md-10">
                        <input class="form-control" type="email" value="{{ $daftar_supplier->email }}" id="updateEmail" name="updateEmail" required>
                      </div>
                    </div> 
            </div>
            <div class="modal-footer">
              <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
              <button type="submit" class="btn btn-primary">Tambah Data</button>
            </div>
            </form>
         </div>
       </div>
    </div>
    @endforeach

这是视图的控制器

public function update(Request $request, $id)
    {
            $update_supplier = DaftarSupplier::findOrFail($id);
            $update_supplier->nama_supplier = $request->updateNamaSupplier;
            $update_supplier->alamat = $request->updateAlamat;
            $update_supplier->no_telp = $request->updateNoTelp;
            $update_supplier->email = $request->updateEmail;
            $update_supplier->save();

            if($update_supplier){
                Alert::success(' Berhasil Update Data ', ' Silahkan dicek kembali');
            }elseif(!$update_supplier){
                Alert::error('data gagal disimpan ', ' Silahkan coba lagi');
            }
            return redirect()->back();
    }

这是路线

//Daftar Supplier
     Route::get('daftar_supplier','\App\Http\Controllers\DaftarSupplierController@index')->name('daftar_supplier');
     Route::post('daftar_supplier/create','\App\Http\Controllers\DaftarSupplierController@create')->name('daftar_supplier.create');
     Route::delete('daftar_supplier/delete/{id}','\App\Http\Controllers\DaftarSupplierController@delete')->name('daftar_supplier.delete');
     Route::put('daftar_supplier/update/{id}', '\App\Http\Controllers\DaftarSupplierController@update')->name('daftar_supplier.update');

请帮忙

标签: phplaravelcontrollersql-updatesql-insert

解决方案


您可能不会传递$daftar_supplier到控制器中的视图。它应该在DaftarSupplierController@index您尚未共享的末尾。一般来说,您应该根据https://laravel.com/docs/8.x/views#passing-data-to-views将一组数据传递给视图

此外,最好在@foreach循环中为数组和值使用不同的变量名,例如:

@foreach($daftar_suppliers as $daftar_supplier)

推荐阅读