codeigniter не может расширять My_Controller.php - PullRequest
0 голосов
/ 17 декабря 2018

Я создал MY_Controller.php в core folder.Я автоматически загрузил все libraries и model, которые я хочу в моем website.А также положить некоторые данные в MY_Controller.php.но когда я расширяю этот контроллер другим контроллером, данные не могут быть расширены во втором контроллере.Это MY_Controller.php код.

<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');
class MY_Controller extends CI_Controller
{
   public $data;
   public function __contstruct()
    {
        parent::__construct();
        date_default_timezone_set('Asia/Karachi');
        $this->load->library(array('ion_auth', 'form_validation','form'));
        /*-Website Developer Information-*/

        $this->data['FullName']="Waqas Dev lover";
        $this->data['ShortName']="Dev Lover";
        $this->data['Mobile']="03049211134";
        $this->data['Version']="1.0.1";
        $this->data['Copyright']="Waqas Dev Lover";
        $this->data['Year']=date("Y");
        $this->data['DevelopedBy']="Waqas Dev Lover";
        $this->data['DevelopedByUrl']="http://www.facebook.com/xndltwaqas1";
        /* -End of Website Developer Information- */
        /*System Information */
        $this->data["SectionH1"]="Admin panel";
        /*End of System Information */

        /*User Information */
       $user_id =$this->session->userdata('user_id');
       //echo  =$this->ion_auth->logged_in();
       //exit;
        $this->data['user'] = $this->ion_auth->user($user_id)->row();
        //$this->get_user_groups($user_id);
        $this->data['group']=$this->ion_auth_model->get_users_groups($user_id)->result();
        //var_dump($this->data['group']);
        //exit();
        /*End User Information */
    }

     public function show($path,$data=NULL){
        if($data === NULL){
            $data = $this->data;
            var_dump($data); exit;
        }
        $this->load->view("template/header",$data);
        $this->load->view("template/sidebar",$data);
        $this->load->view($path,$data);
        $this->load->view("template/footer",$data);
    }  
}
?>

И это Dashboard.php, в который я хочу расширить MY_Controller.php.Но это не расширяет данные в Dashboard.php.

<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');

class Dashboard extends MY_Controller{
    public function index(){
        $this->show("admin/home");
    }
}

1 Ответ

0 голосов
/ 17 декабря 2018

Вы уже можете add, append или reset ваш $this->data из MY_Controller без необходимости передавать дополнительный массив data в show.

public function show($path)
{
    $this->load->view("template/header", $this->data);
    $this->load->view("template/sidebar", $this->data);
    $this->load->view($path, $this->data);
    $this->load->view("template/footer", $this->data);
}

ив своей панели вы можете использовать ее напрямую:

class Dashboard extends MY_Controller
{
    public function index()
    {
        $this->data['foo'] = 'bar';
        $this->show("admin/home");
    }
}

теперь вы можете получить доступ к $foo в представлении панели управления

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...