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

Recibir parámetros por GET en MVC

Estas en el tema de Recibir parámetros por GET en MVC en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola buenas, Quisiera saber como implementar en MVC , el hecho de recibir un id por GET.. por ejemplo... quiero listar una noticia, y a ...
  #1 (permalink)  
Antiguo 14/04/2011, 09:19
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Recibir parámetros por GET en MVC

Hola buenas,

Quisiera saber como implementar en MVC , el hecho de recibir un id por GET.. por ejemplo... quiero listar una noticia, y a través del id que recibo, muestro la noticia asociada a ese Id.

Me interesa sobre todo la parte que se encarga de comprobar si el id existe, y como reaccionará la aplicación en los diferentes casos.

Un saludo!
  #2 (permalink)  
Antiguo 14/04/2011, 09:23
Avatar de anacona16  
Fecha de Ingreso: marzo-2010
Ubicación: Bogota DC
Mensajes: 610
Antigüedad: 14 años, 1 mes
Puntos: 52
Respuesta: Recibir parámetros por GET en MVC

Yo lo hago asi:

Controlador.php

Código PHP:
Ver original
  1. function editar()
  2.     {
  3.         require '../modelos/clientes_mod.php';
  4.        
  5.         $codCliente = $_GET['codigo'];
  6.         if (isset($codCliente) && is_numeric($codCliente) && !empty($codCliente)) {
  7.             $cliente = listarUnCliente($db, $codCliente);
  8.         }else{
  9.             alert('Seleccione un registro para modificar!');
  10.             redirect('admin.php?controlador=clientes');
  11.         }
  12.  
  13.         require '../vistas/clientes_editar.php';
  14.     }

La consulta en el modelo se hace de acuerdo al $codigo.
__________________
Aprendiendo!!!
  #3 (permalink)  
Antiguo 14/04/2011, 09:27
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Recibir parámetros por GET en MVC

Muchas gracias!

Me has dado una idea de como implementarlo.

:)

Un saludo!
  #4 (permalink)  
Antiguo 14/04/2011, 09:28
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Respuesta: Recibir parámetros por GET en MVC

yo en vez de usar $_GET o $_POST uso $_REQUEST y me olvido si vino por post o por get :P
  #5 (permalink)  
Antiguo 14/04/2011, 09:30
Avatar de anacona16  
Fecha de Ingreso: marzo-2010
Ubicación: Bogota DC
Mensajes: 610
Antigüedad: 14 años, 1 mes
Puntos: 52
Respuesta: Recibir parámetros por GET en MVC

Cita:
Iniciado por destor77 Ver Mensaje
yo en vez de usar $_GET o $_POST uso $_REQUEST y me olvido si vino por post o por get :P
Y si por alguna razon llegan a haber dos variables con el mismo nombre?
__________________
Aprendiendo!!!
  #6 (permalink)  
Antiguo 14/04/2011, 10:02
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Respuesta: Recibir parámetros por GET en MVC

Cita:
Iniciado por anacona16 Ver Mensaje
Y si por alguna razon llegan a haber dos variables con el mismo nombre?
el código estaría mal programado jejeje.

Osea si vas a pasar "ids", estaría mal que envíes esto:
Código PHP:
Ver original
  1. $_REQUEST['id'] = 1; /para id de noticias
  2. $_REQUEST['id'] = 6; /para id de categorias

lo correcto sería:
Código PHP:
Ver original
  1. $_REQUEST['id'] = 1; /para id de noticias
  2. $_REQUEST['idcategorias'] = 6; /para id de categorias

o mejor aún:
Código PHP:
Ver original
  1. $_REQUEST['idnoticias'] = 1; /para id de noticias
  2. $_REQUEST['idcategorias'] = 6; /para id de categorias

salu2
  #7 (permalink)  
Antiguo 14/04/2011, 10:11
Avatar de anacona16  
Fecha de Ingreso: marzo-2010
Ubicación: Bogota DC
Mensajes: 610
Antigüedad: 14 años, 1 mes
Puntos: 52
Respuesta: Recibir parámetros por GET en MVC

Si claro es lo correcto, solo que prefiero usar $_GET o $_POST.
__________________
Aprendiendo!!!
  #8 (permalink)  
Antiguo 14/04/2011, 10:49
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Recibir parámetros por GET en MVC

Cita:
Iniciado por anacona16 Ver Mensaje
Yo lo hago asi:

Controlador.php

Código PHP:
Ver original
  1. function editar()
  2.     {
  3.         require '../modelos/clientes_mod.php';
  4.        
  5.         $codCliente = $_GET['codigo'];
  6.         if (isset($codCliente) && is_numeric($codCliente) && !empty($codCliente)) {
  7.             $cliente = listarUnCliente($db, $codCliente);
  8.         }else{
  9.             alert('Seleccione un registro para modificar!');
  10.             redirect('admin.php?controlador=clientes');
  11.         }
  12.  
  13.         require '../vistas/clientes_editar.php';
  14.     }

La consulta en el modelo se hace de acuerdo al $codigo.
Y si la id del elemento no existe en la base de datos se lo traga??

Un saludo!
  #9 (permalink)  
Antiguo 14/04/2011, 11:00
Avatar de anacona16  
Fecha de Ingreso: marzo-2010
Ubicación: Bogota DC
Mensajes: 610
Antigüedad: 14 años, 1 mes
Puntos: 52
Respuesta: Recibir parámetros por GET en MVC

Pues en el modelo compruebo si la consulta devolvio resultados y hago las validaciones pertinentes...
__________________
Aprendiendo!!!
  #10 (permalink)  
Antiguo 14/04/2011, 11:47
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Recibir parámetros por GET en MVC

Cita:
Iniciado por anacona16 Ver Mensaje
Pues en el modelo compruebo si la consulta devolvio resultados y hago las validaciones pertinentes...
De acuerdo,

Muchas gracias de nuevo!

Un saludo!
  #11 (permalink)  
Antiguo 14/04/2011, 14:17
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Recibir parámetros por GET en MVC

Los FW's lo manejan a través de helpers, no son mas que clases encargadas de hacer tareas comúnes a los controllers, para mantener el DRY, un ejemplo(siguiendo tus anteriores threads):

Código PHP:
Ver original
  1. class DaoHelper
  2. {
  3.     ...
  4.     public function findRecordOrException($id, $dao)
  5.     {
  6.         if(is_string($dao)) {
  7.             $dao = new $dao();
  8.         }
  9.         if( ! $dao instanceof IDao) {
  10.             throw new InvalidArgumentException(/***/);
  11.         }
  12.         $record = $dao->find($id);
  13.         if(false === $record) {
  14.             throw new RecordNotFoundException();
  15.         }
  16.         return $record;
  17.     }
  18.  
  19.     public function findRecordOrRedirect($id, $dao)
  20.     {/***/}
  21.  
  22.     public function findRecordOrLog($id, $dao)
  23.     {/***/}
  24.     ...
  25. }

luego en el controller
Código PHP:
Ver original
  1. public function updateAction()
  2. {
  3.     $id = $this->getQuery('id');
  4.     $helper = new DaoHelper();
  5.     try {
  6.         $record = $helper->findRecordOrException((int)$id, 'UserDao');
  7.     } catch(InvalidArgumentException $e) {
  8.         //handle Exception
  9.     } catch(RecordNotFoundException $e) {
  10.         //handle Exception
  11.     }
  12. }

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #12 (permalink)  
Antiguo 14/04/2011, 14:47
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Recibir parámetros por GET en MVC

Cita:
Iniciado por masterpuppet Ver Mensaje
Los FW's lo manejan a través de helpers, no son mas que clases encargadas de hacer tareas comúnes a los controllers, para mantener el DRY, un ejemplo(siguiendo tus anteriores threads):

Código PHP:
Ver original
  1. class DaoHelper
  2. {
  3.     ...
  4.     public function findRecordOrException($id, $dao)
  5.     {
  6.         if(is_string($dao)) {
  7.             $dao = new $dao();
  8.         }
  9.         if( ! $dao instanceof IDao) {
  10.             throw new InvalidArgumentException(/***/);
  11.         }
  12.         $record = $dao->find($id);
  13.         if(false === $record) {
  14.             throw new RecordNotFoundException();
  15.         }
  16.         return $record;
  17.     }
  18.  
  19.     public function findRecordOrRedirect($id, $dao)
  20.     {/***/}
  21.  
  22.     public function findRecordOrLog($id, $dao)
  23.     {/***/}
  24.     ...
  25. }

luego en el controller
Código PHP:
Ver original
  1. public function updateAction()
  2. {
  3.     $id = $this->getQuery('id');
  4.     $helper = new DaoHelper();
  5.     try {
  6.         $record = $helper->findRecordOrException((int)$id, 'UserDao');
  7.     } catch(InvalidArgumentException $e) {
  8.         //handle Exception
  9.     } catch(RecordNotFoundException $e) {
  10.         //handle Exception
  11.     }
  12. }

Saludos.
Muchas gracias.

Me cuesta bastante entender el funcionamiento.. pero bueno.. poco a poco

Un saludo y gracias!

Etiquetas: mvc, recibir
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 06:41.