使用yajra / laravel-oci8时,Laravel 5中的驱动程序[oracle]不受支持

时间:2015-05-03 21:49:20

标签: oracle11g laravel-5 oci8

我已经看到这个问题已经提出Unsupported driver in laravel 4 when using laravel-oci8 package但是回答并不是真的有用,因为https://github.com/yajra/laravel-oci8/issues/2上的线程指定只是通过安装Oracle即时客户端来解决已经有了它。

我正在尝试使用yajra / laravel-oci8软件包将oracle DB与laravel 5应用程序集成,我已经了解了安装过程,并且我已经验证了指定的要求但没有成功。当我尝试运行php artisan route:listphp artisan migrate时,它告诉我[InvalidArgumentException]不支持的驱动程序[oracle]。

我的Config / database.php如下

...
'default' => 'oracle',
...
'connections' => [
        'oracle' => array(
            'driver' => 'oracle',
            'host' => env('DB_HOST', 'localhost'),
            'port' => '1521',
            'database' => 'xe',
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset' => 'AL32UTF8',
            'prefix' => '',
        ),
        ...
]

我错过了其他任何配置吗?

更新

对于任何穿越这个问题的人。 那个问题是我错误地在config / app.php中添加了服务提供者(Yajra\Oci8\Oci8ServiceProvider::class,)类

3 个答案:

答案 0 :(得分:0)

您是否在服务器上安装了所有oracle库?

是否可以使用普通的PDO Oracle连接连接到oracle db。

How to install oracle instantclient and pdo_oci on ubuntu machine?

答案 1 :(得分:0)

这是我的配置:

'oracle' => [
        'driver' => 'oracle',
        'tns' => "(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = XE) (SID = XE)))",
        'host' => env('DB_HOST', 'localhost'),
        'port' => env('DB_PORT', '1521'),
        'database' => env('DB_DATABASE', 'XE'),
        'username' => env('DB_USERNAME', 'XEUSER'),
        'password' => env('DB_PASSWORD', 'XEPASSWD'),
        'charset' => env('DB_CHARSET', 'AL32UTF8'),
        'prefix' => env('DB_PREFIX', ''),
        'prefix_schema' => env('DB_SCHEMA_PREFIX', ''),
    ],

答案 2 :(得分:-1)

更改您的配置:

'oracle' => [
        'driver'        => 'oci8',
        'host'          => 'localhost',
        'port'          => '1521',
        'database'      => 'oracle_ID',
        'username'      => 'username',
        'password'      => 'password',
        'charset'       => 'utf8',
        'prefix'        => '',
        'prefix_schema' => '',
    ],

检查:接受控制器功能

$data = DB::connection('oracle')->table('your_table')->take(1)->get();
var_dump($data);

它对我有用