CodeIgniter创建自定义驱动调用时报Invalid driver requested错误如何解决
问题原因
CodeIgniter驱动类要求父类(继承CI_Driver_Library的类)必须显式声明$valid_drivers属性,指定所有合法的驱动后缀,框架才会识别对应的驱动文件,否则就会抛出Invalid driver requested报错。
解决步骤
- 修改父类代码添加合法驱动声明
打开libraries/Taker/Taker.php,添加$valid_drivers属性,数组值填写你用到的驱动后缀:
class Taker extends CI_Driver_Library { // 新增这一行,声明允许调用的驱动后缀 protected $valid_drivers = ['test']; function hello() { echo 123; } }
- 检查文件路径正确性
你当前列的文件路径存在重复嵌套libraries的问题,正确的路径结构应该放在application目录下,结构如下即可:
application/ └── libraries/ └── Taker/ ├── Taker.php └── drivers/ └── Taker_test.php
- 验证调用逻辑
原来的控制器调用代码不需要修改,修改完成后清理应用缓存再测试即可正常运行:
$this->load->driver('taker'); $this->taker->hello(); // 正常输出 $this->taker->test->world(); // 不再报错
内容的提问来源于stack exchange,提问作者roev
相关产品推荐
相关产品推荐

