#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», а не просто «тест»).