require dirname(dirname(__DIR__)) . '/vendor/autoload.php';
require dirname(__DIR__) . '/config.php';
use Illuminate\Database\Capsule\Manager as DB;
$dbc = new DB;
$dbc->addConnection(array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => DB_NAME,
'username' => DB_USER,
'password' => DB_PASSWORD,
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => ''
));
$dbc->setAsGlobal();
$dbc->bootEloquent();
$dbc->beginTransaction();
Gives me this error,
PHP Fatal error: Call to undefined method Illuminate\\Database\\Capsule\\Manager::beginTransaction()
Can anyone provide me with some help as to how to use capsule and database transactions outside of laravel. I can't find anything that would suggest this doesnt work?
You need to get a connection instance to work with any database related methods (including beginTransaction
). The class that implements them is Illuminate\Database\Connection
. This means you need to get the connection instance from the manager and work with that:
use Illuminate\Database\Capsule\Manager as DB;
$capsule = new DB;
$capsule->addConnection(array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => DB_NAME,
'username' => DB_USER,
'password' => DB_PASSWORD,
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => ''
));
$capsule->setAsGlobal();
$capsule->bootEloquent();
$connection = $capsule->getConnection();
$connection->beginTransaction();