Редактировать форму в Laravel: создает новую запись вместо обновления старых данных - PullRequest
0 голосов
/ 05 марта 2019

Я пытался создать метод редактирования при отправке данных формы, но вместо обновления старой записи он создает новую запись в базе данных ..

Мои исходные файлы: web.php

Route::get('/input_gedung_bangunan/{id_bangunan}', 'input_gedung_bangunan@tampiledit');
Route::post('/data_gedung_bangunan/hitung_data', 'input_gedung_bangunan@store');

Контроллер:

public function store(Request $request){
        //DB::enableQueryLog();
        //$id_bangunan = $id;
        $validation = \App\Tbl_uraian_datas::where('id_bangunan', '=', $request->get('id_bangunan'))->first();
        if(is_null($validation)){
        $tbl_uraian_datas = new \App\Tbl_uraian_datas;
        $tbl_uraian_datas->id_bangunan = $request->get('id_bangunan');
        $tbl_uraian_datas->id_kanwil = Input::get('IDKanwil');
        $tbl_uraian_datas->id_kota_kab = Input::get('IDKotaKab');            
        $tbl_uraian_datas->nomor_baris = Input::get('NomorBaris');
        $tbl_uraian_datas->nama_bangunan = Input::get('NamaBangunan');
        $tbl_uraian_datas->alamat_bangunan = Input::get('AlamatBangunan');
        $tbl_uraian_datas->nama_kota_kab = Input::get('Kota/Kabupaten');    
        $tbl_uraian_datas->kode_barang = Input::get('KodeBarang');
        $tbl_uraian_datas->nup_barang = Input::get('NUPBarang');
        $tbl_uraian_datas->luas_lantai = Input::get('LuasLantai');
        $tbl_uraian_datas->jumlah_lantai = Input::get('JumlahLantai');
        $tbl_uraian_datas->tahun_penilaian = Input::get('TahunPenilaian');
        $tbl_uraian_datas->tahun_dibangun = Input::get('TahunDibangun');
        $tbl_uraian_datas->tahun_direnovasi = Input::get('TahunDirenovasi');
        $tbl_uraian_datas->id_jenis_bangunan = Input::get('IDJenisBangunan');
        $tbl_uraian_datas->jenis_bangunan = Input::get('JenisBangunan');
        $tbl_uraian_datas->id_kategori = Input::get('IDKategoriBangunan');
        $tbl_uraian_datas->kategori_bangunan = Input::get('KategoriBangunan');
        $tbl_uraian_datas->id_kondisi = Input::get('IDKondisiBangunan');
        $tbl_uraian_datas->kondisi_bangunan = Input::get('KondisiBangunan');
        $tbl_uraian_datas->luas_carport = Input::get('LuasCarport');
        $tbl_uraian_datas->panjang_pagar_material1 = Input::get('PanjangPagar1');
        $tbl_uraian_datas->panjang_pagar_material2 = Input::get('PanjangPagar2');
        $tbl_uraian_datas->panjang_pagar_material3 = Input::get('PanjangPagar3');
        $tbl_uraian_datas->harga_per_m2 = Input::get('Hargaperm2');
        $tbl_uraian_datas->alasan_fisik = Input::get('Alasan1');
        $tbl_uraian_datas->penyusutan = Input::get('Penyusutan');
        $tbl_uraian_datas->alasan_penyusutan = Input::get('Alasan2');
        $tbl_uraian_datas->save();

        }else{
          //Edit Data Gedung/Bangunan
        $tbl_uraian_datas = \App\Tbl_uraian_datas::update(['id_kanwil' =>  Input::get('IDKanwil'), 'id_kota_kab' =>  Input::get('IDKotaKab'), 'nomor_baris' =>  Input::get('NomorBaris'),'nama_bangunan' => Input::get('nama_bangunan'),'alamat_bangunan' => Input::get('AlamatBangunan'),'nama_kota_kab' => Input::get('Kota/Kabupaten'),'kode_barang' => Input::get('KodeBarang'),'nup_barang' => Input::get('NUPBarang'),'luas_lantai' => Input::get('LuasLantai'),'jumlah_lantai' => Input::get('JumlahLantai'),'tahun_penilaian' => Input::get('TahunPenilaian'),'tahun_dibangun' => Input::get('TahunDibangun'),'tahun_direnovasi' => Input::get('TahunDirenovasi'),'id_jenis_bangunan' => Input::get('IDJenisBangunan'),'jenis_bangunan' => Input::get('JenisBangunan'),'id_kategori' => Input::get('IDKategoriBangunan'),'kategori_bangunan' => Input::get('KategoriBangunan'),'id_kondisi' => Input::get('IDKondisiBangunan'),'kondisi_bangunan' => Input::get('KondisiBangunan'),'luas_carport' => Input::get('LuasCarport'),'panjang_pagar_material1' => Input::get('PanjangPagar1'),'panjang_pagar_material2' => Input::get('PanjangPagar2'),'panjang_pagar_material3' => Input::get('PanjangPagar3'),'harga_per_m2' => Input::get('Hargaperm2'),'alasan_fisik' => Input::get('Alasan1'),'penyusutan' => Input::get('Penyusutan'),'alasan_penyusutan' => Input::get('Alasan2')]);

        //$tbl_hasil_perhitungans = \App\Tbl_hasil_perhitungans::where('id_bangunan', '=',$request->get('id_bangunan'))->update(['umur_efektif_bangunan' =>  Input::get('nUmurEfektifBangunan'), 'pembulatan' =>  Input::get('nPembulatan')]);


        $request->session()->flash('alert-success', 'Data Gedung Bangunan was successfully added!');

        return back();            
        }
     }

Похоже, контроллер продолжает создавать новый идентификатор для отредактированных данных, и я не знаю, что я сделал неправильно в моем контроллере.

Заранее спасибо.

1 Ответ

0 голосов
/ 05 марта 2019

Вместо следующих строк в вашем коде:

$validation = \App\Tbl_uraian_datas::where('id_bangunan', '=', $request->get('id_bangunan'))->first();
if(is_null($validation)){

Попробуйте:

$validation = \App\Tbl_uraian_datas::where('id_bangunan', $request->input('id_bangunan'))->first();
if(empty($validation)){

AND

вместо

$tbl_uraian_datas = \App\Tbl_uraian_datas::update(['id_kanwil' =>  Input::get('IDKanwil'), 'id_kota_kab' =>  Input::get('IDKotaKab'), 'nomor_baris' =>  Input::get('NomorBaris'),'nama_bangunan' => Input::get('nama_bangunan'),'alamat_bangunan' => Input::get('AlamatBangunan'),'nama_kota_kab' => Input::get('Kota/Kabupaten'),'kode_barang' => Input::get('KodeBarang'),'nup_barang' => Input::get('NUPBarang'),'luas_lantai' => Input::get('LuasLantai'),'jumlah_lantai' => Input::get('JumlahLantai'),'tahun_penilaian' => Input::get('TahunPenilaian'),'tahun_dibangun' => Input::get('TahunDibangun'),'tahun_direnovasi' => Input::get('TahunDirenovasi'),'id_jenis_bangunan' => Input::get('IDJenisBangunan'),'jenis_bangunan' => Input::get('JenisBangunan'),'id_kategori' => Input::get('IDKategoriBangunan'),'kategori_bangunan' => Input::get('KategoriBangunan'),'id_kondisi' => Input::get('IDKondisiBangunan'),'kondisi_bangunan' => Input::get('KondisiBangunan'),'luas_carport' => Input::get('LuasCarport'),'panjang_pagar_material1' => Input::get('PanjangPagar1'),'panjang_pagar_material2' => Input::get('PanjangPagar2'),'panjang_pagar_material3' => Input::get('PanjangPagar3'),'harga_per_m2' => Input::get('Hargaperm2'),'alasan_fisik' => Input::get('Alasan1'),'penyusutan' => Input::get('Penyusutan'),'alasan_penyusutan' => Input::get('Alasan2')]);

Попробуйте:

$tbl_uraian_datas = \App\Tbl_uraian_datas::where('id_bangunan',$request->input('id_bangunan'))->update(['id_kanwil' =>  Input::get('IDKanwil'), 'id_kota_kab' =>  Input::get('IDKotaKab'), 'nomor_baris' =>  Input::get('NomorBaris'),'nama_bangunan' => Input::get('nama_bangunan'),'alamat_bangunan' => Input::get('AlamatBangunan'),'nama_kota_kab' => Input::get('Kota/Kabupaten'),'kode_barang' => Input::get('KodeBarang'),'nup_barang' => Input::get('NUPBarang'),'luas_lantai' => Input::get('LuasLantai'),'jumlah_lantai' => Input::get('JumlahLantai'),'tahun_penilaian' => Input::get('TahunPenilaian'),'tahun_dibangun' => Input::get('TahunDibangun'),'tahun_direnovasi' => Input::get('TahunDirenovasi'),'id_jenis_bangunan' => Input::get('IDJenisBangunan'),'jenis_bangunan' => Input::get('JenisBangunan'),'id_kategori' => Input::get('IDKategoriBangunan'),'kategori_bangunan' => Input::get('KategoriBangunan'),'id_kondisi' => Input::get('IDKondisiBangunan'),'kondisi_bangunan' => Input::get('KondisiBangunan'),'luas_carport' => Input::get('LuasCarport'),'panjang_pagar_material1' => Input::get('PanjangPagar1'),'panjang_pagar_material2' => Input::get('PanjangPagar2'),'panjang_pagar_material3' => Input::get('PanjangPagar3'),'harga_per_m2' => Input::get('Hargaperm2'),'alasan_fisik' => Input::get('Alasan1'),'penyusutan' => Input::get('Penyusutan'),'alasan_penyusutan' => Input::get('Alasan2')]);

Вы должны указать, какую строку нужно обновить, указав where предложение

...