用于更新数据的 Laravel 9 MODAL 不起作用 [此集合实例上不存在属性 [id]。]

问题描述 投票:0回答:0

大家好,我需要帮助我正在使用模式更新数据功能,但它不工作它总是错误“Property [id]在此集合实例上不存在。”(Laravel 9 + bootstrap 5)

这是我的模态代码

'

<div class="modal fade" id="editlaptop{{$laptop->id}}" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="exampleModalLabel">Input data Laptop</h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <div class="modal-body">
                <div class="form-row">
                    <form action="/asset/laptop/{{$laptop->id}}" method="POST" enctype="multipart/form-data">
                        @method('put')
                        @csrf
                        <div class="form-group">
                            <label>MERK</label>
                            <select class="form-select" name="merk" value="{{$laptop->merk}}">
                                <option>Acer</option>
                                <option>Lenovo</option>
                                <option>HP</option>
                                <option>Toshiba</option>
                                <option>Asus</option>
                                <option>Macbook/Apple</option>
                            </select>
                        </div>
                        <div class="form-group">
                            <label>TYPE</label>
                            <input type="text" class="form-control" name="type" value="{{$laptop->type}}">
                        </div>
                        <div class="form-group">
                            <label>WARNA</label>
                            <input type="text" class="form-control" name="warna" value="{{$laptop->warna}}">
                        </div>
                        <div class="form-group">
                            <label>PROCESSOR</label>
                            <input type="text" class="form-control" name="processor" value="{{$laptop->processor}}">
                        </div>
                        <div class="form-group">
                            <label>VGA</label>
                            <input type="text" class="form-control" name="vga" value="{{$laptop->vga}}">
                        </div>
                        <div class="form-group">
                            <label>RAM</label>
                            <input type="text" class="form-control" name="ram" value="{{$laptop->ram}}">
                        </div>
                        <div class="form-group">
                            <label>STORAGE</label>
                            <input type="text" class="form-control" name="storage" value="{{$laptop->storage}}">
                        </div>
                        <div class="form-group">
                            <label>WIFI ADAPTER</label>
                            <input type="text" class="form-control" name="wifi_adapter"
                                value="{{$laptop->wifi_adapter}}">
                        </div>
                        <div class="form-group">
                            <label>JENIS WINDOWS</label>
                            <input type="text" class="form-control" name="jenis_windows"
                                value="{{$laptop->jenis_windows}}">
                        </div>
                        <div class="form-group">
                            <label>LISENSI WINDOWS</label>
                            <input type="text" class="form-control" name="lisensi_windows"
                                value="{{$laptop->lisensi_windows}}">
                        </div>
                        <div class="form-group">
                            <label>ID PRODUCT WINDOWS</label>
                            <input type="text" class="form-control" name="id_product_windows"
                                value="{{$laptop->id_product_windows}}">
                        </div>
                        <div class="form-group">
                            <label>VERSI OFFICE</label>
                            <input type="text" class="form-control" name="versi_office"
                                value="{{$laptop->versi_office}}">
                        </div>
                        <div class="form-group">
                            <label>LISENSI OFFICE</label>
                            <input type="text" class="form-control" name="lisensi_office"
                                value="{{$laptop->lisensi_office}}">
                        </div>
                        <div class="form-group">
                            <label>ADMINISTRATOR PASWORD</label>
                            <input type="text" class="form-control" name="administrator_pasword"
                                value="{{$laptop->administrator_pasword}}">
                        </div>
                        <div class="form-group">
                            <label>NOTES</label>
                            <input type="text" class="form-control" name="notes" value="{{$laptop->notes}}">
                        </div>
                        <div class="form-group">
                            <label>KONDISI</label>
                            <input type="text" class="form-control" name="kondisi" value="{{$laptop->kondisi}}">
                        </div>
                        <div class="form-group">
                            <label>TAHUN PEMBELIAN</label>
                            <input type="text" class="form-control" name="tahun_pembelian"
                                value="{{$laptop->tahun_pembelian}}">
                        </div>
                        <div class="form-group">
                            <label>PEMEGANG</label>
                            <input type="text" class="form-control" name="pemegang" value="{{$laptop->merk}}">
                        </div>
                        <label for="image">Image</label>
                        <input type="file" name="filename" accept='image/jpeg , image/jpg, image/gif, image/png'
                            required>
                </div>
            </div>
        </div>
        <button class="btn btn-primary" name="submit" value="Save">Simpan</button>
        </form>
    </div>
</div>'

触发按钮

<button type="button" class="btn btn-success mt-1 btn-sm" data-bs-toggle="modal" data-bs-target="#editlaptop">edit</button>

控制器:

public function edit($id)
    {
        // dd($id);
        $laptop = Laptop::find($id);
        // dd($laptop);
        return view('/asset/laptop/edit',['laptop' => $laptop]);
    }
    
    public function update ($id, Request $request)
    {
        $this->validate($request, [
            'filename' => 'required',
            'filename.*' => 'required|mimes:png,jpg,jpeg|max:2048'
        ]);
        //check if image is uploaded
        
        // Pakai fungsi findOrFail bawaan laravel
        // Jadi query nya itubakalan nyari ke table Laptop berdasarkan $id
        // Kalau ga ada data yang ditemukan nanti otomatis response nya 404 ke front end
        $laptop = Laptop::findOrFail($id);

        if ($laptop) {
            
            if ($request->hasfile('filename')) {            
                if (! empty($laptop->data_file) && Storage::exists('public/images/laptop/' . $laptop->data_file)) {
                    Storage::delete('public/images/laptop/' . $laptop->data_file);
                }
                $filename = round(microtime(true) * 1000).'-'.str_replace(' ','-',$request->file('filename')->getClientOriginalName());
                $request->file('filename')->move(storage_path('/app/public/images/laptop'), $filename);
            }

            $laptop->update([
                'merk' => $request->input('merk'),
                'type' => $request->input('type'),
                'warna' => $request->input('warna'),
                'processor' => $request->input('processor'),
                'vga' => $request->input('vga'),
                'ram' => $request->input('ram'),
                'storage' => $request->input('storage'),
                'wifi_adapter' => $request->input('wifi_adapter'),
                'id_product_windows' => $request->input('id_product_windows'),
                'versi_office' => $request->input('versi_office'),
                'jenis_windows' => $request->input('jenis_windows'),
                'lisensi_office' => $request->input('lisensi_office'),
                'lisensi_windows' => $request->input('lisensi_windows'),
                'administrator_pasword' => $request->input('administrator_pasword'),
                'notes' => $request->input('notes'),
                'kondisi' => $request->input('kondisi'),
                'tahun_pembelian' => $request->input('tahun_pembelian'),
                'pemegang' => $request->input('pemegang'),
                'data_file' => $filename,
            ]);
        }

        return redirect('/asset/laptop/laptop');
    }

希望有人能帮忙给出解决方案:D

希望有人能给出解决方案,我会知道错的

bootstrap-modal bootstrap-5 laravel-9
© www.soinside.com 2019 - 2024. All rights reserved.