Tips Error Handling Sederhana Pada Query Builder Laravel
|Shares :

Tips Error Handling Sederhana Pada Query Builder Laravel

Jika kamu lebih memilh pakai Query builder di Laravel ketimbang Eloquent, saya ada dipihak kamu :D karena saya juga pakai query Builder untuk kebanyakan aktifitas Query di Aplkikasi Laravel saya. 

Nah biasanya bawaan Koding dari lahir mungkin yah :D, saat query Insert,Update,Delete mungkin ada yang masih seperti ini

public function doUpdate($data){

$data = array(
'nama' => $data['nama'],
'alamar' => $data['alamar']
);
//Auth::user()->id : Session logged user
$update = DB::table('user')->where('user_id',Auth::user()->id) ->update($data);
if($update) return Redirect::to('user/profile');
else //blablaa... }

atau seperti ini

public function doUpdate($data){

$data = array(
'nama' => $data['nama'],
'alamar' => $data['alamar']
);
//Auth::user()->id : Session logged user
$update = DB::table('user')->where('user_id',Auth::user()->id) ->update($data);
if(!$update){ //redirect with error return Redirect::to('user/profile')->with('error_update',true);
} else return Redirect::to('user/profile');
}

Untuk Update, Delete pakai Query builder di laravel, return nya berupa Affected rows. jadi Query di atas kurang tepat dan dapat menimbulkan masalah.

Secara sederhana bisa kita handle sperti ini saja

public function doUpdate($data){

$data = array(
'nama' => $data['nama'],
'alamar' => $data['alamar']
);
//Auth::user()->id : Session logged user try{
DB::table('user')->where('user_id',Auth::user()->id)->update($data); }catch(\Exception $e){ //Log akan disimpan di STorage/logs/laravel.log Log::error('Cannot process update : '.$e->getMessage()); //redirect with Error return Redirect::to('user/profile')->with('error_update',true); } //redirect success return Redirect::to('user/profile')->with('success_update',true);
}

dengan try catch kita bisa menentukan kapan Query kita berhasil atau tidak

CMIIW

Tags : #php #laravel #code


SHARES :


Akbar Pribadi's Avatar

A DigitalPreneur, IT Consultant
> 75% komen akan dibalas. Mohon sabar ya. Simpan halaman ini dan cek kembali lagi

Comments

* Email will not be published


    Privacy .ToS .Contact Us
    © 2017 Teknosains