在CodeIgniter中设置模型成员变量
问题描述:
I'm using CodeIgniter and want to set a member variable for a model.
Here's how I'd expect to write the code:
class Person extends CI_Model {
var $id = '';
function __construct()
{
parent::__construct();
}
function set_id($id = '')
{
$this->id = $id;
}
}
and then I'd expect to call the model and set the member variable like this:
$person1 = $this->load->model('Person');
$person1->set_id(5000);
but this gives:
Fatal error: Call to a member function set_id() on a non-object
I'm clearly missing some PHP or CodeIgniter language semantic here. Any suggestions?
答
change this
$person1 = $this->load->model('Person');
$person1->set_id(5000);
to
$this->load->model('Person');
$this->Person->set_id(5000);
From Documentation
Edit
Different instance of single model
$this->load->model('Person', 'Person1');
$this->Person1->set_id(5000);
$this->load->model('Person', 'Person2');
$this->Person2->set_id(5000);
答
you need to access model function using an object with the same name of your class..
Once loaded, you will access your model functions using an object with the same name as your class: $this->Model_name->function();
it should be..
$this->load->model('Person');
$this->Person->set_id(5000);
or
$this->load->model('Person', 'somename');
$this->somename->set_id(5000);
you can go through the doc here