模块的结构
/modules
/core_crud
/controllers
/core_crud.php
/models
/views
/shop_curd
/controllers
/shop_crud.php
/models
/views
core_crud.php
中的代码:
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Core_crud extends MX_Controller
{
function __construct()
{
parent::__construct();
$this->load->model('mdl_core_crud');
}
public function index()
{
}
public function mymethod($param1 = '', $param2 = '')
{
return 'Hello, I am called with paramaters' . $param1 . ' and ' . $param2;
}
}
shop_crud.php
中的代码:
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Shop_crud extends MX_Controller
{
public function __construct()
{
parent::__construct();
}
public function testmethod()
{
$this->load->controller('core_crud/mymethod', array('hello', 'world'));
$myvar = $this->load->controller('core_crud/mymethod', array('hello', 'world'), TRUE);
}
}
因此,与其扩展整个模块/控制器,我更喜欢只调用所需的方法。这很简单,也很容易。
注意:如果模块名称和控制器名称不同,则必须传递路径
module_name/controller_name/mymethod
编辑以支持EXTENDS
文件结构
![文件结构](https://istack.dev59.com/GoCX4.webp)
core_crud.php
中的代码。
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Core_crud extends MX_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('core_crud/mdl_core_crud');
}
public function index()
{
return 'index';
}
public function check_method($param1 = '')
{
return 'I am from controller core_crud. ' . $this->mdl_core_crud->hello_model() . ' Param is ' . $param1;
}
}
mdl_core_crud.php
中的代码
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class mdl_core_crud extends CI_Model
{
public function hello_model()
{
return 'I am from model mdl_core_crud.';
}
}
shop_crud.php
中的代码。
if (!defined('BASEPATH'))
exit('No direct script access allowed');
include_once APPPATH . '/modules/core_crud/controllers/core_crud.php';
class Shop_crud extends Core_crud
{
public function __construct()
{
parent::__construct();
}
public function index()
{
echo parent::check_method('Working.');
}
}
输出:-我来自控制器core_crud。我来自模型mdl_core_crud。参数正在工作。
希望这有所帮助。谢谢!