Quiero recuperar mi JSON para mi controlador home porque quiero esos valores para mi menú basado en roles. Si hago esto con archivos separados no funciona en mi código. de view home Entonces, ¿qué es estoy haciendo mal con el? ¿Cómo se puede arreglar bien mostrando los valores correctos?
login controller:
<?php
defined('BASEPATH') OR
exit('No direct script access allowed');
class Login extends MY_Controller {
public function __construct(){
parent::__construct();
}
public function index(){
$data['module'] = 'Login';
$this->load->view('login',$data);
}
public function getAccess(){
if ($this->session->userdata('logged_in') == TRUE){
redirect('home');
}else{
$username = $this->security->xss_clean($this->input->post('username'));
$password = $this->security->xss_clean($this->input->post('password'));
$array = $this->user->login($username,$password);
if ($array[0] == 0) {
echo 0;
}else{
'id' => $array[0]['id'],
'name' => $array[0]['nombre'],
'last_name' => $array[0]['apellido'],
'type' => $array[0]['id_perfil'],
'logged_in' => TRUE
);
$this->session->set_userdata('log',$data_session);
}
}
}
public function logout(){
$this->session->sess_destroy();
redirect('login');
}
public function getModules($id_module){
if($this->session->userdata('log')){
$data = $this->session->userdata('log');
$seccions = $this->module->get_rows();
foreach ($seccions as $index => $sección){
$modules = $this->module->query("SELECT CONCAT('".$sección['id']."',storelte_modulo.id) AS id,CONCAT('".base_url('assets/img/sidebar')."','/',storelte_modulo.icon) as icon, storelte_modulo.modulo AS value,storelte_modulo.seccion_id,CONCAT('".base_url()."',storelte_modulo.url) AS url FROM storelte_modulo INNER JOIN storelte_modulo_perfil ON storelte_modulo_perfil.modulo_id = storelte_modulo.id WHERE seccion_id = $sección[id] AND storelte_modulo_perfil.perfiles_id = $data[id] AND storelte_modulo_perfil.STATUS = 1");
$seccions[$index]['data']= $modules;
if (!count($seccions[$index]['data'])) unset($seccions[$index]); }
foreach ($seccions as $item)
$this->data['fields'] = $menu;
$this->json($this->data);
$this->load->view('home',$this->data);
}
}
}
home controller:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Home extends MY_Controller {
public function __construct(){
parent::__construct();
$this->isLogged();
}
public function index(){
$data = $this->session->userdata('log');
$data['module'] = "Home";
$this->load->view('header',$data);
$this->load->view('home',$data);
}
}
view home
<section class="sidebar">
<!-- sidebar menu: : style can be found in sidebar.less -->
<ul class="sidebar-menu"> <img src="<?= base_url().'/assets/img/sidebar/items.png'?>" alt="" class="menu-icon">
<span>Inventory
</span> <i class="fa fa-angle-left pull-right"></i> <ul class="treeview-menu"> <li><a href="<?=base_url('inventory/product');?>">
<i class="fa fa-circle-o text-aqua"></i> Product
</a></li>
Es facil, si en tu controlador tenes algo como esto:
//Asigno las variable en $data, este siempre debe ser un array.
$data['usuario'] = array( 'nombre'=>'Facundo', 'apellido'=>'López' ); $data['texto'] = 'Hace mucho viento...';
//Cargo la vista pasandole $data
$this->load->view('home', $data);
Luego, en tu vista, cada variable del arreglo $data se convierte en una variable independiente, por ejemplo para mostrar las variables
usuario y
texto haríamos asi:
<p>Nombre: <?=$usuario['nombre']?></p>
<p>Apellido: <?=$usuario['apellido']?></p>
<p><?=$texto?></p>
Espero haberte ayudado...
eso ya lo tengo lo que quiero es pasar todo el menu porque me da este error
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: fields
Filename: views/modules_view.php
Line Number: 3
Backtrace:
File: C
:\xampp\htdocs\storeLTE\application\views\modules_view
.php
Line: 3
Function: _error_handler
File: C
:\xampp\htdocs\storeLTE\application\views\home
.php
Line: 147
Function: view
File: C
:\xampp\htdocs\storeLTE\application\controllers\Home
.php
Line: 14
Function: view
File: C
:\xampp\htdocs\storeLTE\index
.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: Warning
Message: Invalid argument supplied for foreach()
Filename: views/modules_view.php
Line Number: 3
Backtrace:
File: C
:\xampp\htdocs\storeLTE\application\views\modules_view
.php
Line: 3
Function: _error_handler
File: C
:\xampp\htdocs\storeLTE\application\views\home
.php
Line: 147
Function: view
File: C
:\xampp\htdocs\storeLTE\application\controllers\Home
.php
Line: 14
Function: view
File: C
:\xampp\htdocs\storeLTE\index
.php
Line: 315
Function: require_once