2013-04-30 105 views
1

我正在使用CodeIgniter并想为模型设置成员变量。在CodeIgniter中设置模型成员变量

以下是我所期待编写代码:

class Person extends CI_Model { 
    var $id = ''; 

    function __construct() 
    { 
     parent::__construct(); 
    } 

    function set_id($id = '') 
    { 
     $this->id = $id; 
    } 
} 

,然后我会想到调用模型,并设置这样的成员变量:

$person1 = $this->load->model('Person'); 
$person1->set_id(5000); 

但是这给:

Fatal error: Call to a member function set_id() on a non-object 

我很明显在这里缺少一些PHP或CodeIgniter语言语义。有什么建议么?

回答

2

改变这种

$person1 = $this->load->model('Person'); 
$person1->set_id(5000); 

$this->load->model('Person'); 
$this->Person->set_id(5000); 

Documentation

编辑

单一模式

$this->load->model('Person', 'Person1'); 
$this->Person1->set_id(5000); 

$this->load->model('Person', 'Person2'); 
$this->Person2->set_id(5000); 
+1

是的,工作的不同实例。那你如何加载模型的2个实例呢?例如Person1和Person2? – Snowcrash 2013-04-30 10:26:18

+0

@SnowCrash请参阅编辑答案... :) – 2013-04-30 10:29:33

+1

谢谢 - 有点奇怪的创建对象的方式,但它的工作原理。 – Snowcrash 2013-04-30 14:58:28

2

你需要使用对象与类同名访问模式功能..

加载后,您将访问使用对象模型的功能具有相同的名称类: $这 - > Model_name->功能();

应该..

$this->load->model('Person'); 
$this->Person->set_id(5000); 

$this->load->model('Person', 'somename'); 
$this->somename->set_id(5000); 

你可以通过doc这里