我有Module_One,其函数是exampleOne()...
class Model_One extends CI_Model {
function __construct()
{
parent::__construct();
}
function exampleOne(){
return "test";
}
}
我想知道如何(如果可能的话),在Model_Two中调用Model_One ......
class Model_Two extends CI_Model {
function __construct()
{
parent::__construct();
}
function exampleTwo(){
return "testTwo";
}
}
我可以调用Model_Two并使用Model_One的exampleOne()。
class Controller_One extends CI_Controller{
function index(){
$this->load->model('Model_Two');
$this->Model_Two->exampleOne();
}
}
我知道我可以这样做......
class Model_One extends CI_Model {
function __construct()
{
parent::__construct();
}
function exampleOne(){
return "test";
}
}
等......
class Model_Two extends CI_Model {
function __construct()
{
parent::__construct();
$this->load->model('Model_One');
}
function exampleTwo(){
return "testTwo";
}
function exampleOne2(){
$this->Model_One->exampleOne();
}
}
等......
class Controller_One extends CI_Controller{
function index(){
$this->load->model('Model_Two');
$this->Model_Two->exampleOne2();
}
}
但是,冗余创建一个函数来调用另一个函数,我知道它必须有另一种方法来做到这一点,但我不知道,并没有发现任何事情。任何想法?
感谢您的关注
答案 0 :(得分:1)
是的,编程应该干(不要重复自己)。
对于您的情况,请尝试以下代码:
class Model_Two extends CI_Model {
function __construct()
{
parent::__construct();
$this->load->model('Model_One');
}
function exampleTwo(){
return "testTwo";
}
// change this method to the name of the another module
function model_one(){
// just return the new model object
// so you can keep using all method in this object, without repeat the methods
return $this->Model_One;
}
}
在您的控制器中,您使用如下的model_two模型:
class Controller_One extends CI_Controller{
function index(){
$this->load->model('Model_Two');
$this->Model_Two->model_one()->exampleOne();
// and here you can use all method from model_one...
// $this->Model_Two->model_one()->exampleTwo();
}
}
我希望对你有所帮助。 :)