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

このようにヘルパー関数の1つに入れます

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 に答える