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

Duda con vistas en MVC

Estas en el tema de Duda con vistas en MVC en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola Tengo una duda, si tengo un menú de árbol, los enlaces deben apuntar a archivos que se encuentran en las vistas; por ej: <a ...
  #1 (permalink)  
Antiguo 30/03/2009, 10:50
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 9 meses
Puntos: 2
Exclamación Duda con vistas en MVC

Hola

Tengo una duda, si tengo un menú de árbol, los enlaces deben apuntar a archivos que se encuentran en las vistas; por ej: <a href='vistas/addusuario.php'>Usuarios</a> y los action de estos formularios deben apuntar al index para ser manipulados por el FrontController que tengo.

Otra duda: Tengo que tener necesariamente 1 vista por cada acción que ejecute, digamos, agregar, eliminar, modificar, visualizar, reporte.

Saludos y espero que respondan a mi solicitud
  #2 (permalink)  
Antiguo 30/03/2009, 13:00
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 7 meses
Puntos: 48
Respuesta: Duda con vistas en MVC

Usas algún FrameWork? Cual?

Saludos!
  #3 (permalink)  
Antiguo 30/03/2009, 14:02
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Duda con vistas en MVC

No uso ningun framework, me baso en lo que estoy estudiando y en el patron prueba y error . Tengo un FrontController que lo estoy armando a partir de lo que lei en la pagina de GatorV y luego tengo un controlador items, un metodo items y vistas, ademas el patron Registry.

Saludos
  #4 (permalink)  
Antiguo 30/03/2009, 15:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Duda con vistas en MVC

Hola Fenris,

Si estas usando un FrontController lo ideal es que todos tus requests pasen a travez de el, inclusive desde las vistas, así el FrontController puede redirecciónar en caso de que sea necesario.

Por otro lado no, tu puedes tener una vista para muchas acciones, esto ya es decision tuya y como hayas hecho el diseño de tu aplicación.

Saludos.
  #5 (permalink)  
Antiguo 30/03/2009, 15:30
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Duda con vistas en MVC

GatorV

podrias enviarme un ejemplo donde se llame por ejemplo a agregarItem.php(formulario agregar que seria una vista) desde el menu y que este pase por el FrontController y sea este quien como tu indicas redireccione a esa vista.

Saludos y gracias por responder.
  #6 (permalink)  
Antiguo 30/03/2009, 16:14
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Duda con vistas en MVC

Pues lo que haces es llamar por index en el formulario:
Código html:
Ver original
  1. <form action="index.php" method="post">
  2. <input type="hidden" name="controller" value="items" />
  3. <input type="hidden" name="action" value="agregar" />
  4. <!-- Los demás campos -->
  5. </form>

Así al entrar al FrontController este va a leer el controller / action y va a hacer la pertinente redirección.

Saludos.
  #7 (permalink)  
Antiguo 30/03/2009, 16:39
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Duda con vistas en MVC

Ok, ahi es donde tengo la confusion y el problema, lo que pasa GatorV es que yo en el controlador ya tengo un metodo agregar que lo que hace es tomar los valores del formulario y enviarlos al modelo para que este procese la solicitud de insercion de datos en la BD. Como puedo hacer entonces para que al llamar al metodo agregar me cargue el archivo de la vista del form y no el metodo que trabaja con el modelo.

Espero me hayas entendido, no si si voy por buen camino con esto o si estoy perdido.

Saludos y gracias por responder.
  #8 (permalink)  
Antiguo 30/03/2009, 16:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Duda con vistas en MVC

No entiendo tu duda, tu puedes renderear la vista que quieras especificandola, todo depende de tu implementación, por ejemplo si usaras Zend Framework tu puedes decirle a la vista cual quieres llamando al método render del mismo:
Código php:
Ver original
  1. public function agregarAction() {
  2.         // stuff
  3.         $this->view->render( 'foo.phtml' );
  4. }

Saludos.
  #9 (permalink)  
Antiguo 30/03/2009, 16:59
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 9 meses
Puntos: 2
Pero para luego procesar esa accion a que metodo llamo, una vez que presione el submit del form.??

Ayuda, como proceso la acción del formulario agregar.php si ya tengo una acción así que lo que hace es mostrar la vista (el formulario para agregar un nuevo ítem), tengo que tener un método exclusivo para llamar vistas?
por ej: Esta accion carga la vista con el form para agregar el nuevo item, ahora como proceso ese form, a que controlador llamo.
Código:
      public function agregarAction() {

              // stuff
              $this->view->render( 'foo.phtml' );
      }
Saludos

Última edición por GatorV; 01/04/2009 a las 14:12
  #10 (permalink)  
Antiguo 01/04/2009, 14:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Duda con vistas en MVC

Para enviar el submit solamente pon un boton submit y apunta el action del formulario (<form action=""> a tu frontcontroller con los parámetros de tu controller / action tal como te lo habia puesto más arriba:
Código html:
Ver original
  1. <form action="index.php" method="post">
  2. <input type="hidden" name="controller" value="items" />
  3. <input type="hidden" name="action" value="agregar" />
  4. <!-- Los demás campos -->
  5. </form>

Saludos.
  #11 (permalink)  
Antiguo 01/04/2009, 14:52
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Duda con vistas en MVC

Si tengo claro lo del submit y que el action del form debe apuntar al FrontController, lo que no tengo claro es como proceso eso yo. Un ejemplo utilizo el metodo "agregarAction" para mostrar la vista del form para agregar, por otro lado en ese form el controlador al que llamo seria "items" y el action seria agregar pero ese metodo ya esta y lo que hace es mostrar la vista si yo llamo de nuevo a ese controlador no va a procesar el form sino que va a mostrar de nuevo la vista no se si me entiendes?

Saludos
  #12 (permalink)  
Antiguo 01/04/2009, 14:58
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Duda con vistas en MVC

Pues eso ya es control tuyo en tu aplicación, eso ya es tu programa, no todo es automatico tu tienes que definir:
Código php:
Ver original
  1. public function agregarAction() {
  2.         if( hay_datos_post() ) {
  3.                 // insertas datos etc.
  4.         }
  5.  
  6.          // muestras formulario
  7. }

Como ves eso ya es flujo de tu programa, no tanto del patrón de diseño...

Saludos.
  #13 (permalink)  
Antiguo 01/04/2009, 16:32
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Duda con vistas en MVC

Muchas gracias GatorV ahora ya tengo una idea mas clara acerca de esto. En tu blog pondras tutoriales acerca de esto ya que seria de mucha ayuda para quienes estamos partiendo en este camino del uso de patrones para las plaicaciones en PHP.
Saludos y nuevamente te reitero mis agradecimientos.
  #14 (permalink)  
Antiguo 01/04/2009, 18:03
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Duda con vistas en MVC

Pues no creo subir algún tutorial ya que el que puse esta muy bien explicado, esta parte de la acción es lo que debe de realizar cada quien como programador.

Saludos.
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 10:25.