0

我有以下 php 错误:

遇到 PHP 错误

严重性:通知

消息:未定义的变量:t

遇到 PHP 错误

严重性:警告

消息:myclass::__construct() 缺少参数 1,在第 1011 行的 xxx 中调用并定义

我的控制器包含:

    $this->load->model('mymodel');
    $i = $this->mymodel->func(1);
    print_r($i);

我的模型:

$test = new myclass("foo", "bar");
$myarray[] = $test;
return $myarray

我的课 :

class myclass {

var $a;
var $b;

public function __construct($t, $l) // ERROR 2
{
    $this->a = $t; // ERROR 1
    $this->b = $l;
}

}

请注意,控制器中的 print_r($a) 打印带有内容的正确对象..

谢谢

4

2 回答 2

1

好吧,那是由 Codeigniter 引起的。

myclass在单独的文件中声明并由mymodel使用:

    $CI =& get_instance();
    $CI->load->library('myclass', $params);

加载库时,Codeigniter 创建一个myclass实例作为单例,但它不传输任何参数。为防止出现此错误,您必须在加载 lib 之前提供参数:

    $params = array('type' => "a", 'loc' => "b");
    $CI =& get_instance();
    $CI->load->library('myclass', $params);

请注意,它必须是一个数组 ($params),而不是单个参数。

于 2012-09-07T09:33:45.927 回答
0

另一种方法是复制猫antelove answer

这样,您只需要更改模型文件和加载模型的方式。

PS这只是为了丰富这个SO线程

于 2019-12-28T05:23:53.207 回答