phattarachai/laravel-odbc

该包最新版本(0.1)的许可证信息不可用。

Laravel框架的ODBC集成

0.1 2022-11-27 18:18 UTC

This package is auto-updated.

Last update: 2024-08-30 01:26:45 UTC


README

此集成允许在 Laravel 框架中使用 odbc_* php 函数,而不是使用 PDO。
它模拟 Laravel 使用的 PDO 类。

这是一个基于 andreossido/laravel-odbc 的项目,以支持最新的 PHP 和 Laravel 版本。

# 安装方法

composer require phattarachai/laravel-odbc 添加源到您的项目中

# 使用说明

配置非常简单

1) 将数据库添加到 database.php 文件中

'odbc-connection-name' => [
    'driver' => 'odbc',
    'dsn' => 'OdbcConnectionName',
    'database' => 'DatabaseName',
    'host' => '127.0.0.1',
    'username' => 'username',
    'password' => 'password'
]

2) 在 app.php 文件中添加服务提供者

'providers' => [
  ...
  Phattarachai\Odbc\ODBCServiceProvider::class
]

# Eloquent ORM

您可以使用 Laravel、Eloquent ORM 以及其他 Illuminates 组件,就像平常一样。

# Facade
$books = DB::connection('odbc-connection-name')->table('books')->where('Author', 'Abram Andrea')->get();

# ORM
$books = Book::where('Author', 'Abram Andrea')->get();

# 自定义 getLastInsertId() 函数

如果您想要提供一个自定义的 getLastInsertId() 函数,您可以通过扩展 ODBCProcessor 类并重写该函数来实现。

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);
    }
}

# 自定义处理器 / 查询语法 / 架构语法

如果您想使用另一个类代替默认类,您可以在配置文件中更新您的连接。

'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
        ]
    ]
]