Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Una consulta sobre mvc con Codigniter

Estas en el tema de Una consulta sobre mvc con Codigniter en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Holas Estoy aprendiendo a usar este framework y me estoy guiando en unos ejemplos y sobre todo en la documentacion que tiene este framework. Hace ...
  #1 (permalink)  
Antiguo 24/09/2008, 16:44
 
Fecha de Ingreso: mayo-2008
Mensajes: 23
Antigüedad: 15 años, 11 meses
Puntos: 0
Una consulta sobre mvc con Codigniter

Holas

Estoy aprendiendo a usar este framework y me estoy guiando en unos ejemplos y sobre todo en la documentacion que tiene este framework.

Hace un tiempo vi un ejemplo de una pagina en la cual hacian un sist. de control de usuarios, en el cual En la parte de los CONTROLADORES hay codigo que llama a la base de datos como por ejempo en el Controlador Usuarios.php esta la funcion "function registrar()", dentro de esta funcion esta este fragmento de codigo:

$this->db->query("INSERT INTO `usuarios` (`nick`, `clave`, `mail`, `nivel`) VALUES (?,?,?,'1')", array($_POST['nick'], sha1($_POST['clave']), $_POST['mail']));


Bueno, mi pregunta es la siguiente puede haber codigo que adicione y elimine o haga consultas a la base de datos en un CONTROLADOR???? no es esta tarea de los MOdelos???,, un controlador solo coordina entre lo que es las vistas y los modelos o puede realizar operaciones como sumar 2+2 po eje.???
bueno no quiero pecar de criticon y mas bien agradecer que pongan ejemplos concretos como lo hizo este amigo que realizo este trabajo pero mer inquieta esas preguntas

El sistema esta aqui y lo pueden visitar
http://www.noquieroprogramar.com/sistema-de-usuarios-segunda-parte-clase-%e2%80%98centinela%e2%80%99-ii/

gracias atte. cristian
  #2 (permalink)  
Antiguo 24/09/2008, 19:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Una consulta sobre mvc con Codigniter

Hola cristianmercado,

En efecto, esa es tarea directo de los modelos, el controlador solo debe de enviar los datos al modelo para que haga esas tareas.

Saludos.
  #3 (permalink)  
Antiguo 24/09/2008, 21:16
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 5 meses
Puntos: 890
Respuesta: Una consulta sobre mvc con Codigniter

Es lo que me gusta de codeigniter, se que sale del estricto modelo de trabajo que es el MVC, pero a mi me ahorra trabajo, sobre todo cuando se hace una aplicacion muy simple, o simplemente no lo quiero hacer.
Ahora si critiquenme.(es broma).

Saludos
__________________
Drupal Argentina
  #4 (permalink)  
Antiguo 27/09/2008, 01:09
 
Fecha de Ingreso: febrero-2007
Ubicación: Panamá
Mensajes: 50
Antigüedad: 17 años, 2 meses
Puntos: 1
Respuesta: Una consulta sobre mvc con Codigniter

Como bien comentaba en la web de "noquieroprogramar" en verdad es una pena que no este utilizando los modelos para nada, pero el CodeIgniter permite el uso de los modelos como algo opcional, igual es recomendable el uso de los modelos si lo quieres ver desde un punto de vista MVC.

Igualmente como comente por alla, tambien me parece que es necesario el uso del active record en casos como este, para tener orden en el trabajo.

Asi pasamos de algo como:
$this->db->query(”INSERT INTO `imagenes` (`imagen`, `fecha`, `ip`) VALUES (?, ?, ?)”, array($data['file_name'], time(), $_SERVER['REMOTE_ADDR']));

A:
$array = array(
‘imagen’ => $data['file_name'],
‘fecha’ => time(),
‘ip’ => $_SERVER['REMOTE_ADDR']
);
$this->db->insert(’imagenes’, $array);

Realmente el uso de menos lineas o el codigo tipo spaghetti en el CI no hace q la aplicacion vaya a correr más rapido, de por si el CI es el mas veloz, o no?
  #5 (permalink)  
Antiguo 01/10/2008, 22:55
 
Fecha de Ingreso: mayo-2008
Mensajes: 23
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Una consulta sobre mvc con Codigniter

gracias por responder otra inquietud relacionado con el tema:

Tengo tres paginas digamos pag1.html, pag2.html y pag3.html, las tres estan en la carpeta view, las quiero enlazar las tres de la pag1 a la pag2, y de esta a la pag3.
las funciones muestrapag2() y muestrapag3() estan definidas dentro del controlador
en el index de mi controlador llama a la pagina1,
Dentro de las paginas tengo:

en la pagina1 hago esto
Código HTML:
<a href="controlador/muestrapag2">enlaze a la pagina2</a> 
en la pagina 2 hago esto
Código HTML:
<a href="controlador/muestrapag3">enlaze a la pagina2</a> 
esta bien hacer esto, llamar al controlador cuando solamente son "links" a hacia otras paginas dentro de los views?????

y cuando hago esto me crea un bucle y solamente muestra la pagina1 no muestra la pagina2

es conveniente trabajar con frames cuando usamos codeigniter???

Última edición por cristianmercado; 01/10/2008 a las 23:24
  #6 (permalink)  
Antiguo 02/10/2008, 06:53
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 5 meses
Puntos: 890
Respuesta: Una consulta sobre mvc con Codigniter

a cada funcion tienes que darle una vista, o varias, es correcto lo que estas haciendo, asi es como se trabaja, pero deberias uasrlo asi:
<a href="/controlador/muestrapag2">enlaze a la pagina2</a>
Asi no tendras problemas de rutas.
ejemplo
en una vista tienes <a href="/controlador/muestrapag2">enlaze a la pagina2</a>
tu controlador seria

function muestrapag2(){
$this->load->view('tuotravista')
}

function muestrapag1(){

$this->load->view('cualquiervista')
}

La idea de esto es hacer que la web sea modular y no se repita todo el codigo html (cabezera, pies, banners etc) solo el contenido que va a cambiar, obivmanente el ejemplo que te estoy dando es muy simple. A esto se le puede agregar el uso de plantillas(y no me refiero a smarty u otro sistema de plantillas).
Saludos

Y con respecto a los frames, se puede trabajar con ellos sin problemas, pero se va a hacer mas complicado de mantener, y va a tener los problemas que normalmente estos tienen.
__________________
Drupal Argentina
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 07:41.