2015-07-22 2 views
1

Это полный код (я хочу выбрать представление через переменную, заданную в MY_Controller): Я хотел бы передать эту переменную, но она не «достигает», вид она дает мне $ ses_group = "not_logged_in" с тестовым эхо, и я ничего не устанавливая на MY_ControllerCodeigniter - Передача данных из MY_Controller в Main_controller для просмотра

class MY_Controller extends CI_Controller { 
protected $special_data = array(); 
public function __construct() 
{ 
    parent::__construct(); 
} 
function index() { 
if (logged_in() == TRUE) 
{ 
if (in_group('users')) 
{ 
    $this->special_data['ses_group'] = 'users'; 
}elseif (in_group('empresas')) 
{ 
    $this->special_data['ses_group'] = 'empresas'; 
}elseif (in_group('admin')) 
{ 
    $this->special_data['ses_group'] = 'admin'; 
}else{ 
    // $this->special_data['ses_group'] = 'not_logged_in'; 
} 
} 
return $this->special_data; 
} 

Main_Controller:

function index(
$data = array(
        'ses_group' => $this->special_data 
      ); 
      $this->load->view('auth/descricao_anuncio', $data); 
) 

вид:

<?php if($ses_group="not_logged_in"){ ?> 
<li><a href="<?php echo base_url("login/login")?>" class="">Login</a></li> 


<?php }elseif($ses_group="users"){ ?> 

<li><a href="<?php echo base_url("users_controller/edit_user")?>">Your Area</a></li> 
<li><a href="<?php echo base_url("login/logout")?>">Logout</a></li> 


<?php }elseif($ses_group="empresas"){ ?> 

<li><a href="<?php echo base_url("empresas_controller/edit_empresa")?>">Empresa</a></li> 
<li><a href="<?php echo base_url("login/logout")?>">Logout</a></li> 

<?php }?> 

echo $ses_group; 

С уважением, ага!

+0

Проблема здесь в том, что мне нужно передать переменную из родительского класса к классу CHLD и может 't получить это правильно –

ответ

-2

Является ли это то, что вам нужно

контроллер

class MY_Controller extends CI_Controller { 

    protected $special_data = array(); 

function special_data($val) 
{ 
if($val=="a"){ 
$this->special_data = 'users'; 
}elseif($val=="b"){ 
$this->special_data = 'companies'; 
}else{ 
$this->special_data = 'admin'; 
} 
return $this->special_data;// return value of the function 
} 
} 

class Main_controller extends MY_Controller { 


     function __construct() 
    { 
    parent::__construct(); 

    } 


public function index() 
    { 

    $data = array(

        'group' => $this->special_data('a') 
      ); 

      $this->load->view('view_x', $data); 
    } 

} 

вид

<?php echo $group; ?> 
+0

да, но мне нужен оператор if и нужно, чтобы он проходил через Main_Controller –

+0

Я обновил свой код – mokNathal

+0

Что такое a и b в 'if (a) {...} elseif (b) {}' – mokNathal

1

Контроллер

<?php 

class MY_Controller extends CI_Controller { 

protected $special_data = array(); 

function MY_Controller() { 
     parent::Controller(); 
    } 

function special_data($val) 
{ 
if(a){ 
$this->special_data['ses_group'] = 'users'; 
}elseif(b){ 
$this->special_data['ses_group'] = 'companies'; 
}else{ 
$this->special_data['ses_group'] = 'admin'; 
} 
return $this->special_data;// return value of the function 
} 

} 

Вы можете отправить значение из контроллера взглядов с помощью $this-> в вашем MY_Controller

контроллер

class Main_controller extends MY_Controller { 
     function __construct() { 
     parent::MY_Controller(); 
    } 


     $this->data['group']= $this->special_data['ses_group'];// call function and pass parameter 
     $this->load->view('view_x', $this->data); 

} 

Просмотров

<?php echo $group; ?>