Free Website Hosting Anuncios

Instanciar un objeto de modelo en Codeigniter

Bueno, Codeigniter es un gran framework, lo utilizo mucho y cada vez me gusta más, pero me topé con la necesidad de instanciar un objeto del modelo en un controlador para pasarselo a la vista o trabajar con él.
Di unas vueltas hasta que lo hice asi:
En el modelo, en mi caso el modelo bk_usuario:

class Bk_usuario extends Model {
 
	var $usuario = null;
 
	function Bk_usuario($id){
		//Llamando al contructor del Modelo
		parent::Model();
		$ru = $this->db->get_where('bk_usuario',array('idbk_usuario'=>$id));
		$this->usuario = $ru->row();
	}
 
	function isSuper(){
		return ($this->usuario->nivel==3);
	}
 
	function isAdmin(){
		return ($this->usuario->nivel==2);
	}
 
	function isReserva(){
		return ($this->usuario->nivel==1);
	}
 
}

Entonces desde un controlador que consume el modelo usuario:

class Inicio extends Controller {
 
	function Inicio(){
 
		parent::Controller();
 
	}
 
	function index(){
 
		##cargando models
		$this->load->model('booking/bk_usuario');
 
                ##Aqui es donde instancio el modelo usuario con un new y pasando el id de usuario (en este ejemplo harcodeado, pero debe ser un dato variable)
		$usuario 					= new $this->bk_usuario('ddicami');
 
		$datos['puede_ver'] 		= ( $usuario->isSuper() OR $usuario->isAdmin() );		
 
		$this->load->view('booking/header', $datos);
		$this->load->view('booking/index', $datos);
 
	}
 
}

Lo que logré es rellenar el atributo $usuario desde el contructor del objeto bk_usuario, instanciándolo con el id del usuario desde el controlador.

Si te ha gustado este post, suscríbete al feed.

Categorías: Code Igniter, Frames php, General

3 comentarios to “Instanciar un objeto de modelo en Codeigniter”

  1. muchas gracias me ha sido de mucha utilidad.

  2. Genial! a mi también me resultó util y no veía como hacerlo.

  3. buena pana ..!!

Deja una respuesta