2017-12-07 19 views
0

私は初心者のcodeigniterプログラマーです。同じクラスのcodeigniter内の他の関数からの変数の使用

私はこの関数からのすべての変数と同じクラスのコントローラ内の別の関数を使いたいと思います。この私のコード

function page() 
{ 

    $page_id = $this->uri->segment(3); 
    $page_details = $this->m_module->submenu($page_id)->row_array(); 
    $data['title']= $page_details['sub_title']; 
    $data['menu'] = $page_details['title']; 
    $data['submenu'] = $page_details['sub_title']; 
    $data['link'] = $page_details['sub_target']; 
    $data['page_id'] = $page_id; 
} 

function employee() 
    { 
     $data['employee']= $this->m_module->employee()->result_array(); 
     $this->page();  
     $this->template->display($data['link'],$data); 
    } 

問題は可変関数page()は関数employee()を呼び出すことができません。

この私が助けてくださいブラウザ

A PHP Error was encountered 

Severity: Notice 

Message: Undefined index: link 

Filename: controllers/Module.php 

Line Number: 39 

で取得します。

は、あなたのメソッドが値として返していなかったので、あなたが取得していなかった理由だった

+0

間のリンクの値を渡すためにクラス変数を設定することができますプライベートリンクを作成して、$ this-> link = $ data ['link']のようなページ関数内に設定し、$ this-> linkを使用して従業員で参照します。 – iSZ

+0

私のコードから例を挙げられますか? –

+0

私は以下の例を追加しました。あなたのコードは以下のようなCIクラスの中にありますか? – iSZ

答えて

1

は、以下の

private function page() { 
$page_id = $this->uri->segment(3); 
$page_details = $this->m_module->submenu($page_id)->row_array(); 

return [ 
    'title' => $page_details['sub_title']; 
    'menu' => $page_details['title']; 
    'submenu' => $page_details['sub_title']; 
    'link'=> $page_details['sub_target']; 
    'page_id' => $page_id; 
]; 

}

private function employee() { 
    $data = $this->page(); 
    $data['employee']= $this->m_module->employee()->result_array(); 
$this->template->display($data['link'],$data); 
} 

のようなあなたの方法を更新していただきありがとうございます。

+0

兄弟ありがとう、しかし今、私は問題があり、変数$データ['従業員']ビューページで呼び出すことはできません。 重大度が発生した A PHPのエラーコードをエラー: メッセージを注意:未定義の変数:従業員を ファイル名:human_capital/employee.php 行番号:24 iは配列$データ[ '従業員' にしたいです]このようなビューページで <?php $ no = 1; foreach($ employee AS $ emp_list){?> –

+0

更新されたコードを確認してください。 – usrNotFound

+0

ありがとうございました。これは非常に助けになりました。 –

0

あなたが含むクラス例えば内部のプライベート変数を設定するために必要な機能

<?php 
    class MyController extends CI_Controller { 
     private $link; 

     public function page($data){ 
      $this->link = $data['link']; 
     } 

     public function page(){ 
      echo $this->link; 
     } 

    } 
?>