Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: geshiro en 23 Octubre 2016, 03:20 am



Título: ¿Cómo puedo conseguir mi entrada JSON casa controler controler?(codeigniter)
Publicado por: geshiro en 23 Octubre 2016, 03:20 am
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:

Código
  1. <?php
  2. defined('BASEPATH') OR exit('No direct script access allowed');
  3.  
  4. class Login extends MY_Controller {
  5.  public function __construct(){
  6.    parent::__construct();
  7.  }
  8.  
  9.  public function index(){
  10.    $data['module'] = 'Login';
  11.    $this->load->view('login',$data);
  12.  }
  13.  
  14.  public function getAccess(){
  15.    if ($this->session->userdata('logged_in') == TRUE){
  16.      redirect('home');
  17.    }else{
  18.      $username = $this->security->xss_clean($this->input->post('username'));
  19.      $password = $this->security->xss_clean($this->input->post('password'));
  20.      $array = $this->user->login($username,$password);
  21.      if ($array[0] == 0) {
  22.        echo 0;
  23.      }else{
  24.        $data_session = array(
  25.          'id' => $array[0]['id'],
  26.          'name' => $array[0]['nombre'],
  27.          'last_name' => $array[0]['apellido'],
  28.          'type' => $array[0]['id_perfil'],
  29.          'logged_in' => TRUE
  30.        );
  31.        $this->session->set_userdata('log',$data_session);
  32.      }
  33.    }
  34.  }
  35.  
  36.  public function logout(){
  37.    $this->session->sess_destroy();
  38.    redirect('login');
  39.  }
  40.  
  41.  public function getModules($id_module){
  42.        if($this->session->userdata('log')){
  43.            $data = $this->session->userdata('log');
  44.            $menu = array();
  45.            $seccions = $this->module->get_rows();
  46.            foreach ($seccions as $index => $sección){
  47.               $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");
  48.                $seccions[$index]['data']= $modules;
  49.                if (!count($seccions[$index]['data']))
  50.                    unset($seccions[$index]);
  51.            }
  52.            foreach ($seccions as $item)
  53.                array_push($menu,$item);
  54.          $this->data['fields'] = $menu;
  55.          $this->json($this->data);
  56.          $this->load->view('home',$this->data);
  57.        }
  58.    }
  59. }
  60.  


home controller:

Código
  1.   <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  2.  
  3. class Home extends MY_Controller {
  4.  
  5.  public function __construct(){
  6.    parent::__construct();
  7.    $this->isLogged();
  8.  }
  9.  
  10.  public function index(){
  11.    $data = $this->session->userdata('log');
  12.    $data['module']  = "Home";
  13.    $this->load->view('header',$data);
  14.    $this->load->view('home',$data);
  15.  }
  16.  
  17. }
  18.  


view home

Código
  1. <section class="sidebar">
  2.      <!-- sidebar menu: : style can be found in sidebar.less -->
  3.      <ul class="sidebar-menu">
  4.         <li class="treeview">
  5.          <a href="#">
  6.            <img src="<?= base_url().'/assets/img/sidebar/items.png'?>" alt="" class="menu-icon"> <span>Inventory</span>
  7.            <i class="fa fa-angle-left pull-right"></i>
  8.          </a>
  9.          <ul class="treeview-menu">
  10.            <li><a href="<?=base_url('inventory/product');?>"><i class="fa fa-circle-o text-aqua"></i> Product</a></li>
  11.          </ul>
  12.        </li>
  13.  


Título: Re: ¿Cómo puedo conseguir mi entrada JSON casa controler controler?(codeigniter)
Publicado por: [u]nsigned en 26 Octubre 2016, 16:09 pm
Es facil, si en tu controlador tenes algo como esto:

Código
  1. //Asigno las variable en $data, este siempre debe ser un array.
  2. $data['usuario'] = array( 'nombre'=>'Facundo', 'apellido'=>'López' );
  3. $data['texto'] = 'Hace mucho viento...';
  4. //Cargo la vista pasandole $data
  5. $this->load->view('home', $data);
  6.  

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:

Código
  1. <p>Nombre: <?=$usuario['nombre']?></p>
  2. <p>Apellido: <?=$usuario['apellido']?></p>
  3. <p><?=$texto?></p>
  4.  

Espero haberte ayudado...


Título: Re: ¿Cómo puedo conseguir mi entrada JSON casa controler controler?(codeigniter)
Publicado por: geshiro en 30 Octubre 2016, 00:17 am
eso ya lo tengo lo que quiero es pasar todo el menu porque me da este error


Código
  1. A PHP Error was encountered
  2.  
  3. Severity: Notice
  4.  
  5. Message: Undefined variable: fields
  6.  
  7. Filename: views/modules_view.php
  8.  
  9. Line Number: 3
  10.  
  11. Backtrace:
  12.  
  13. File: C:\xampp\htdocs\storeLTE\application\views\modules_view.php
  14. Line: 3
  15. Function: _error_handler
  16.  
  17. File: C:\xampp\htdocs\storeLTE\application\views\home.php
  18. Line: 147
  19. Function: view
  20.  
  21. File: C:\xampp\htdocs\storeLTE\application\controllers\Home.php
  22. Line: 14
  23. Function: view
  24.  
  25. File: C:\xampp\htdocs\storeLTE\index.php
  26. Line: 315
  27. Function: require_once
  28.  
  29. A PHP Error was encountered
  30.  
  31. Severity: Warning
  32.  
  33. Message: Invalid argument supplied for foreach()
  34.  
  35. Filename: views/modules_view.php
  36.  
  37. Line Number: 3
  38.  
  39. Backtrace:
  40.  
  41. File: C:\xampp\htdocs\storeLTE\application\views\modules_view.php
  42. Line: 3
  43. Function: _error_handler
  44.  
  45. File: C:\xampp\htdocs\storeLTE\application\views\home.php
  46. Line: 147
  47. Function: view
  48.  
  49. File: C:\xampp\htdocs\storeLTE\application\controllers\Home.php
  50. Line: 14
  51. Function: view
  52.  
  53. File: C:\xampp\htdocs\storeLTE\index.php
  54. Line: 315
  55. Function: require_once
  56.