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