Laravel DB::transaction() return value
laravel, php
Solution
By giving a look at `function transaction` it does its process inside a try/catch block
public function transaction(Closure $callback)
{
$this->beginTransaction();
// We'll simply execute the given callback within a try / catch block
// and if we catch any exception we can rollback the transaction
// so that none of the changes are persisted to the database.
try
{
$result = $callback($this);
$this->commit();
}
// If we catch an exception, we will roll back so nothing gets messed
// up in the database. Then we'll re-throw the exception so it can
// be handled how the developer sees fit for their applications.
catch (\Exception $e)
{
$this->rollBack();
throw $e;
}
So throws an Exception (after the rollback) if fails or returns `$result`, which is the result of your callback
Problem
It's my first time to use `DB::transaction()` but how exactly does it work if a transaction fails or is successful? In the example below, do I have to manually assign a value to return `true`, or if it fails will the method either return `false` or totally exit the transaction (therefore skipping the rest of the code)? The docs aren't so helpful on this. ``` use Exception; use DB; try { $success = DB::transaction(function() { // Run some queries }); print_r($success); } catch(Exception $e) { echo 'Uh oh.'; } ```