появляется ошибка, когда я пытаюсь использовать драйверы в CodeIgniter

#php #codeigniter #codeigniter-3

Вопрос:

Я пытаюсь создать пользовательский драйвер в codeigniter, но у меня ошибка.

вот иерархия файлов:

  /libraries
    /libraries/Taker
        /libraries/Taker/Taker.php
        /libraries/Taker/drivers
            /libraries/Taker/drivers/Taker_test.php
 

Код в libraries/Taker/Taker.php:

    class Taker extends CI_Driver_Library  {
        function hello() {
            echo 123;
        }
    }
 

Код в libraries/Taker/drivers/Taker_test.php:

 class Taker_test extends CI_Driver {
    function world() {
        echo 123;
    }
}
 

Код в контроллере:

 $this->load->driver('taker');
$this->taker->hello(); //work
$this->taker->test->world(); //eror here
 

ошибка, которую я получил в контроллере:

 Invalid driver requested: Taker_test
 

Есть Какие-Нибудь Предложения?
Спасибо

Ответ №1:

Решение заключается в том, что мне пришлось использовать $this->valid_drivers:

 class Taker extends CI_Driver_Library  {
    
    function __construct() {
          $this->valid_drivers = ['test'];
     }
    
    
    function hello() {
        echo 123;
    }
}
 

Комментарии:

1. Спасибо @roev — это мне очень помогло. У меня была строка «$this->valid_drivers», но я вызывал своего водителя с полным именем драйвера («Taker_test», а не просто «тест»).