Передающие аргументы при загрузке пользовательской библиотеки CodeIgniter

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

Так или иначе я не могу получить CI load() метод для передачи нескольких аргументов функции конструктора класса.

Мой класс разработан для получения 3 аргументов, 2 массивов и одной дополнительной строки.

Конструктор несколько походит на это:

public function __construct($array, $array,$string=""){
/** code **/
}

Соответствующая часть от контроллера:

function index(){
  $array1 = array('key1'=>'value','key2'=>'value');
  $array2 = array('key1'=>'value','key2'=>'value');
  $string = "value";
  $params = array($array1,$array2,$string);
  $this->load->library("MyClass",$params);
}

Загрузка контроллера генерирует эту ошибку:

Message: Missing argument 2 for MyClass::__construct()

Это является действительно озадачивающим меня. Кажется, что первый аргумент получает отправленный штраф, и затем это дросселирует на втором аргументе. Любые подсказки о том, почему это происходит, будут значительно цениться.

13
задан Andrei 13 August 2010 в 21:59
поделиться

2 ответа

Вам необходимо изменить конструктор класса для обработки переданных данных, как описано здесь:

https://www.codeigniter.com/user_guide/general/creating_libraries.html

public function __construct($params)
{
    $array1 = $params[0];
    $array2 = $params[1];
    $string = $params[2];

    // Rest of the code
}
17
ответ дан 1 December 2019 в 23:46
поделиться

вы забыли $ on array2 при объявлении параметров, в результате чего он передается как не определенная константа вместо массива.

0
ответ дан 1 December 2019 в 23:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: