Foros del Web » Programando para Internet » PHP » CodeIgniter »

Declarar variables en el constructor del controlador

Estas en el tema de Declarar variables en el constructor del controlador en el foro de CodeIgniter en Foros del Web. Necesito crear una variable global a todos los métodos del controlador para luego pasarla a las vistas. Lo necesito porque dependiendo del controlador, el action ...
  #1 (permalink)  
Antiguo 16/05/2013, 14:20
 
Fecha de Ingreso: mayo-2013
Ubicación: España
Mensajes: 4
Antigüedad: 11 años, 7 meses
Puntos: 0
Declarar variables en el constructor del controlador

Necesito crear una variable global a todos los métodos del controlador para luego pasarla a las vistas. Lo necesito porque dependiendo del controlador, el action de un formulario de búsqueda apuntará a un sitio o a otro.

Dejo el código de lo que tengo.

Constructor
Código PHP:
function __construct(){
        
parent::__construct();
        
$this->load->model('clientesModel');
        
$data['controlador'] = "clientes"/*Indica el formulario de busqueda desde que controlador se ha llamado*/
    

Método donde se completa el array $data
Código PHP:
public function resultadobusqueda()
    {
        
$cadena $this->input->post('busqueda');
        
$datos $this->clientesModel->buscar($cadena);
        
        
$data ['titulo'] = "Clientes | Resultado Búsqueda";

        if (
$datos->num_rows() > 0){
            
$data ['clientes'] = $datos;

            
$this->load->view('template/header',$data);
            
$this->load->view('listadoClientes'$data);
            
$this->load->view('template/footer');
        }else{
            
$data ['mensaje'] = "Ningún cliente encontrado";

            
$this->load->view('template/header',$data);
            
$this->load->view('template/info',$data);
            
$this->load->view('template/footer');
        }
    } 
Formulario de la vista
Código HTML:
<form class="form-inline" action="<?=base_url()?>index.php/<?=$controlador?>/resultadobusqueda" method="post">
		  <div class="input-append row-fluid">
			<input type="text" name="busqueda" class="span8" placeholder="Cliente">
			<button type="submit" class="btn btn-info">Buscar</button>
		  </div>
		</form> 
Mientras escribía esto se me ha encendido la bombilla de sacarlo de la URI, pero quiero saber si lo que pretendía hacer es correcto.
  #2 (permalink)  
Antiguo 16/05/2013, 15:05
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 13 años, 3 meses
Puntos: 297
Respuesta: Declarar variables en el constructor del controlador

Si necesitas crear una variable global, puedes crear una propiedad:

Código PHP:
Ver original
  1. class Object {
  2.  
  3.     private $myvar = NULL;
  4.    
  5.     function foo() {
  6.         $this->myvar = 'foo';  
  7.     }
  8.    
  9.     function bar() {
  10.         echo $this->myvar; //imprime foo.
  11.     }
  12.  
  13. }
__________________
Freelance Developer — www.rubenmartin.me PHP, SQL, Wordpress, Prestashop, Codeigniter, Laravel
RegaloConsolas — www.regaloconsolas.com Sorteo juegos, consolas y accesorios
  #3 (permalink)  
Antiguo 03/07/2013, 18:02
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 8 meses
Puntos: 292
Respuesta: Declarar variables en el constructor del controlador

A vuelo de pajaro y sin leer todo el codigo pero viendo la respuesta de @hasdpk que creo correcta... agregaria que si quieres que este disponible en TODOS los Controllers te haces un MY_Controller y luego en cada controlador extiendes ESE y no CI_Controller ...

En cuyo caso esa propiedad seria "protected"
__________________
Salu2!

Etiquetas: constructor, controlador, declarar, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:30.