我真的很困惑,因为我有以下情况:
Class Game extends CI_Model{
$this->load->model('user');
public $user = 'foo';
$var = $this->user; // Model Or Local Variable?
}
我如何判断它应该使用哪一个,模型User
或本地公共变量$user
?
答案 0 :(得分:2)
$this->user
与$user
您使用$this->load->model('user');
加载的模型只能通过$this
变量访问。此外,您应该只通过模型已经放入的变量范围来处理它(如果愿意的话,更有意义)。
本地方法变量,正如您尝试使用$var = $this->user;
一样,只能通过方法访问。
因此,纠正您的代码,它看起来像这样:
Class Game extends CI_Model{
public function get_player() {
$this->load->model('user'); // Load the User model
$user = 'foo'; // Variable with the string value 'foo'.
$var = $this->user;
// $var is a copy of the model you loaded before
// which means using:
$name = $this->user->get_username();
// is the same as
$name = $var->get_username();
retun $name;
}
}
答案 1 :(得分:1)
简单快速的解决方案:
If you would like your model assigned to a different object name you can specify it via the second parameter of the loading function: $this->load->model('Model_name', 'fubar'); $this->fubar->function();