在同一个类codeigniter中使用来自其他函数的变量

时间:2017-12-07 00:57:13

标签: php codeigniter codeigniter-3

我是新手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

请帮忙。

谢谢

2 个答案:

答案 0 :(得分:2)

更新您的方法,如下所示

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);
}

你没有得到的原因是因为你的方法没有作为值返回。

答案 1 :(得分:0)

您可以设置一个类变量来传递函数之间的链接值

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

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

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

    }
?>