这是一个继承问题......主要是。新手在这里!
我拥有的: 父模型的2个儿童模型。 对于这个问题,两个孩子的模型完全相同。
我想要的: 让子模型设置父模型的属性,并为所有子项设置该属性。如果可能的话。因此,例如,Info_model设置继承属性$ this-> league_id,然后League_model可以访问由Info_model设置的此值。 我不知道在加载Ml_league_model之前,league_id的值是多少。 这有什么样的工作?
我的想法: 好像加载Info_model和League_model时,它们每个都有一个父模型的实例,而不是我想要的,这是一个孩子可以从中访问属性的实例。
在我的控制器中,正如您所看到的,test()函数的输出是:
league id in the info_model is: 508
league id in the league_model is:
位于/ core目录中的父模型
class Ml_league_model extends MY_Model{
protected $league_id='';
function __construct() {
parent::__construct();
}
function _initialize($params = array())
{
if (count($params) > 0)
{
foreach ($params as $key => $val)
{
$this->$key = $val;
}
}
}//end initialize
}
?>
位于/ models目录中的子模型
class Info_model extends Ml_league_model{
function __construct() {
parent::__construct();
}
function get_league_id(){
echo 'league id in the info_model is: '.$this->league_id.br(1);
}
位于/ models目录中的另一个子模型
class League_model extends Ml_league_model{
function __construct() {
parent::__construct();
}
function get_league_id(){
echo 'league id in the info_model is: '.$this->league_id.br(1);
}
位于/ controllers目录的控制器
Class Info extends MY_Controller{
public function __construct() {
parent::__construct();
$this->load->model('Info_model');
$this->load->model('League_model');
}
function test (){
$this->Info_model->_initialize(array('league_id'=>508));
$this->Info_model->get_league_id();
$this->League_model->get_league_id();
}