0

我应该将加载模型和显示视图但无法从 URL 访问的函数放在哪里。我的意思是,我需要编写一个应该从视图调用的函数,并且该函数显示一个菜单列表。

function displayMenu () {
   $menu = $this->model->getMenuResults();
   $this->load->view( 'ViewResults', $menu);
}

我应该把它写成主控制器中的私有函数吗?

4

2 回答 2

0

您可以在 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

于 2013-09-05T04:32:18.213 回答
0

把它放在你的一个辅助函数中,像这样

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);
}
于 2013-09-05T05:08:20.550 回答