在Laravel中编辑表单:创建新条目而不是更新旧数据

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

我尝试在表单数据提交上创建编辑方法,但不是更新旧条目,而是在数据库中创建一个新条目。

我的源文件是: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();            
        }
     }

看起来控制器不断为编辑的数据创建新的id,我不知道在控制器中我做错了什么。

提前致谢。

laravel-5 edit id
1个回答
0
投票

而不是代码中的以下行:

$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)){

代替

$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子句来确定实际更新哪一行

© www.soinside.com 2019 - 2024. All rights reserved.