abram / laravel-odbc
ODBC integration for Laravel framework
Installs: 66 101
Dependents: 1
Suggesters: 0
Security: 0
Stars: 35
Watchers: 3
Forks: 29
Open Issues: 11
Requires
- php: ^5.3.3 || >=7.0
- illuminate/database: ~5.1 || >= 6.0
- illuminate/support: ~5.1 || >= 6.0
This package is not auto-updated.
Last update: 2024-11-20 03:02:44 UTC
README
This integration allows the use of odbc_* php function with Laravel framework instead of PDO.
It emulates PDO class used by Laravel.
# How to install
composer require abram/laravel-odbc
To add source in your project
# Usage Instructions
It's very simple to configure:
1) Add database to database.php file
'odbc-connection-name' => [ 'driver' => 'odbc', 'dsn' => 'OdbcConnectionName', 'database' => 'DatabaseName', 'host' => '127.0.0.1', 'username' => 'username', 'password' => 'password' ]
2) Add service provider in app.php file
'providers' => [ ... Abram\Odbc\ODBCServiceProvider::class ]
# Eloquen ORM
You can use Laravel, Eloquent ORM and other Illuminate's components as usual.
# Facade $books = DB::connection('odbc-connection-name')->table('books')->where('Author', 'Abram Andrea')->get(); # ORM $books = Book::where('Author', 'Abram Andrea')->get();
# Custom getLastInsertId() function
If you want to provide a custom getLastInsertId() function, you can extends ODBCProcessor class and override function.
class CustomProcessor extends ODBCProcessor { /** * @param Builder $query * @param null $sequence * @return mixed */ public function getLastInsertId(Builder $query, $sequence = null) { return $query->getConnection()->table($query->from)->latest('id')->first()->getAttribute($sequence); } }
# Custom Processor / QueryGrammar / SchemaGrammar
To use another class instead default one you can update your connection in:
'odbc-connection-name' => [ 'driver' => 'odbc', 'dsn' => 'OdbcConnectionName', 'database' => 'DatabaseName', 'host' => '127.0.0.1', 'username' => 'username', 'password' => 'password', 'options' => [ 'processor' => Illuminate\Database\Query\Processors\Processor::class, //default 'grammar' => [ 'query' => Illuminate\Database\Query\Grammars\Grammar::class, //default 'schema' => Illuminate\Database\Schema\Grammars\Grammar::class //default ] ] ]