yajra/laravel-oci8无法连接Oracle数据库问题求助
解决Laravel连接Oracle时"Undefined constant 'Yajra\Pdo\OCI_DEFAULT'"错误
修复步骤
1. 确认Yajra OCI8包的安装与版本匹配
- 确保安装了适配当前Laravel版本的Yajra OCI8扩展包,执行对应版本的安装命令(比如Laravel 10对应^10.0版本):
composer require yajra/laravel-oci8:^10.0 - 若已安装,更新到稳定兼容版:
composer update yajra/laravel-oci8
2. 清理Laravel缓存
- 清除配置和应用缓存,确保新配置生效:
php artisan config:clear php artisan cache:clear - 重启本地开发服务器(如
php artisan serve或Valet)。
3. 检查数据库配置
- 打开
config/database.php,确认Oracle连接配置使用Yajra驱动:'oracle' => [ 'driver' => 'oracle', 'tns' => env('DB_TNS', ''), 'host' => env('DB_HOST', ''), 'port' => env('DB_PORT', '1521'), 'database' => env('DB_DATABASE', ''), 'username' => env('DB_USERNAME', ''), 'password' => env('DB_PASSWORD', ''), 'charset' => env('DB_CHARSET', 'AL32UTF8'), 'prefix' => env('DB_PREFIX', ''), 'prefix_schema' => env('DB_SCHEMA_PREFIX', ''), ], - 确保
.env文件中DB_CONNECTION设置为oracle。
4. 验证PHP环境变量一致性
- 检查CLI的Oracle环境变量是否加载:
php -i | grep ORACLE_HOME - 重启终端和Web服务器,确保服务器进程能读取到zshrc中配置的Oracle路径。
5. 重新安装依赖
- 若以上步骤无效,删除依赖目录和锁文件后重新安装:
rm -rf vendor composer.lock composer install
内容的提问来源于stack exchange,提问作者Almas
相关产品推荐
相关产品推荐

