2012-05-18 12 views
8

Estoy usando codeigniter. He definido una biblioteca en CodeIgniter y está a la espera de un parámetro en sus constructor.This es el código de la biblioteca -Cargar biblioteca pasando el parámetro al constructor en codeigniter

################# [My Library Code Test_lib.php ] ######################## 
<?php 
class Test_lib 
{ 
var $params; 
public function __construct($params) 
{ 
    $this->params = $params; 
    echo $this->params; 
} 
} 

En la documentación CodeIgniter, se menciona que se puede pasar el parámetro en el segundo argumento. lo tanto, estoy inicializarlo desde el controlador de la siguiente manera -

<?php 
class Test_cont extends CI_Controller { 
function __construct() 
{ 
    parent::__construct(); 
} 

function test() 
{ 
    $params = "abc"; 
    $this->load->library("test_lib",$params); 
} 
} 

estoy consiguiendo siguiente error -

Un PHP Se encontró el error Gravedad: Mensaje de advertencia: Falta el argumento .....

Por favor asiste.

Respuesta

21

$params debe ser una matriz. From the documentation:

En la función de carga de la biblioteca se puede pasar de forma dinámica los datos como una matriz a través del segundo parámetro y éste será pasado a su constructor de clase:

$params = array('type' => 'large', 'color' => 'red'); 

$this->load->library('Someclass', $params); 

En su caso, usted quiere a hacer algo como esto:

function test() 
{ 
    $params[] = "abc"; // $params is an array 
    $this->load->library("test_lib",$params); 
} 
+0

hola ¿cómo podemos acceder a '$ params' en la biblioteca .. – user254153

+2

si mi constructor es como __construct función ($ param1 = null, $ param2 = null, $ param3 = null) a continuación, cómo pasar parámetros ???/ –

+0

significa si no quiero pasar una matriz. –

3

Sólo tiene que modificar las $ params de una vari capaz de arreglar espero que esto funcionará

function test() 
{ 
    $params = array(1=>'abc'); 
    $this->load->library('test_lib',$params); 
} 
Cuestiones relacionadas