Bueno, supongamos que tengo una función en donde siempre le hago un llamado (Desde diferente Vista/Modelo), como hago para crear una función global de tal forma que pueda ser llamada desde cualquier parte de mi proyecto.
No lo puedo heredar porque ya mi Modelo hereda algo...
Tendría que crear mi propia librería?
Si hablamos solo de una funcion, no de un conjunto de funciones o de una clase, lo mejor seria que te crees un helper.
helper y lo añades al autoload....
si ya tienes un objeto base que extiende de ci_controller y tus controladores de este objeto... no te cuesta nada añadirlo hay mismo.
:¬¬
opte por crear una helper, pero tengo un pequeño problema, tengo el siguiente código.
function validateToken( $id ){
if( token( $id ) ){
echo "Si";
}else{ echo "No"; }
}
function token( $id ){
#if( !strlen($id) == 32 ){ return false; }
$this->db->select('id, nombre');
$this->db->where('id', $id);
$query = $this->db->get('usuario');
$row = $query->row();
if( $row->id == $id ){
return true;
}else{ return false; }
}
Pero cuando lo llamo mi helper desde mi vista, no ejecuta nada. Pero si ejecuto directamente desde la vista funciona correctamente. Que podría ser?
Me auto respondo, necesitaba crear una instancia del CI!
$ci=& get_instance();
$ci->load->database();
/* {CODE} */
No es recomendable llamar a funciones desde las Vistas, eso atenta con el modelo MVC. Lo ideal es generar todo en el controlador y guardarlo en una array, y cuando llamas a tu vista, pasarle dicho array como argumento:
Controlador:
<?php
class Mi_controlador extends CI_Controller {
function index()
{
$data['page_title'] = 'Pagina de Prueba';
$this->load->view('mi_vista', $data);
}
}
?>
Vista:
<html>
<head>
<title><?php echo $page_title;?></title>
</head>
<body>
<h1>PoC</h1>
</body>
</html>
Y por ultimo, veo que tu función opera sobre DD.BB. Creo que eso seria mejor ponerlo en un Modelo xD
@El As del Club Paris, eso lo se... Pero necesito de una función global,... Y lo de la vista, lo dije sólo a modo de ejemplo, por allí en la vista funcionaba correctamente, mientras que en mi helper no.
Bueno, pero no te enojes :xD