Como posso usar a transação db no laravel?
Eu tento isso:
public function destroy($id)
{
DB::beginTransaction();
try {
$product = $this->product_repository->find($id);
$result = $product->categories()->detach();
if($result) {
list($status,$instance) = $this->product_repository->delete($id);
}
DB::commit();
return ['status'=>true,'data'=>$status];
} catch (\Exception $e) {
DB::rollback();
return ['status'=>false, 'message'=>$e->getMessage()];
}
}
Se o código executado,$this->product_repository->delete($id)
não funciona / não foi possível excluir com êxito.
Mas isso :$product->categories()->detach();
, funciona / sucesso excluído.
Como se a exclusão do produto falhou, a exclusão da categoria também falhou?