我已经看到这个问题已经提出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:list
或php 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,
)类
答案 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);
它对我有用