我应该将加载模型和显示视图但无法从 URL 访问的函数放在哪里。我的意思是,我需要编写一个应该从视图调用的函数,并且该函数显示一个菜单列表。
function displayMenu () {
$menu = $this->model->getMenuResults();
$this->load->view( 'ViewResults', $menu);
}
我应该把它写成主控制器中的私有函数吗?
我应该将加载模型和显示视图但无法从 URL 访问的函数放在哪里。我的意思是,我需要编写一个应该从视图调用的函数,并且该函数显示一个菜单列表。
function displayMenu () {
$menu = $this->model->getMenuResults();
$this->load->view( 'ViewResults', $menu);
}
我应该把它写成主控制器中的私有函数吗?
您可以在 codeigniter 控制器中使用私有函数
private function _displayMenu()
{
$menu = $this->model->getMenuResults();
$this->load->view( 'ViewResults', $menu);
}
直接来自文档
私有函数
在某些情况下,您可能希望对公共访问隐藏某些功能。要将函数设为私有,只需添加下划线作为名称前缀,它将不会通过 URL 请求提供。例如,如果你有这样的功能:
private function _utility()
{
// some code
}
像这样尝试通过 URL 访问它是行不通的:
example.com/index.php/blog/_utility/
有关更多详细信息,请访问http://ellislab.com/codeigniter/user-guide/general/controllers.html#private
把它放在你的一个辅助函数中,像这样
function displayMenu () {
$CI = &get_instance();
//choose whichever is appropriate
//option 1
//if your model is globally loaded then simply call the model like this
//$menu = $CI->loadedmodel->getMenuResults();
// option 2 otherwise load the model here
//$CI->load->model('model_name');
//$menu = $CI->model_name->getMenuResults();
$CI->load->view( 'ViewResults', $menu);
}