Ver Mensaje Individual
  #4 (permalink)  
Antiguo 30/12/2008, 13:49
CAT Shannon
 
Fecha de Ingreso: octubre-2005
Mensajes: 42
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: Duda con variables en URL [CakePHP]

Creo que tu problema puede ser porque $id nunca sea númerica aunque tú creas que lo sea. Las variables pasadas por $_GET son por defecto cadenas (que alguien me corrija si me equivoco).

Te pongo una versión simple del código de "mostrar" que yo utilizo.
Código PHP:
public function mostrar($id){
    
$this->Noticia->id $id;
    
$this->set('noticia'$this->Noticia->read());

Puedes ver que es mucho más sencillo que lo que tu utilizas. ¿Por qué? Bueno, yo no hago la comprobación de que el ID sea númerico, no me hace falta. Si el ID no es un número no encontrará correspondencia en la tabla de registros.
El método "findById_noticia" supongo que lo has desarrollado tú. No es necesario. Te vale con asignar el valor al atributo "id" de "Noticia" y luego invocar el método "read". Esto devuelve un array que paso directamente a la vista. ¿Por qué molestarme en hacer un "set" de cada uno de los valores del array cuando puedo pasarlos todos en bloque? A mi me parece más sencillo.

Obviamente el método se puede mejorar añadiendo cuantas comprobaciones de los valores recibidos quieras (con Sanitize por ejemplo). Te he puesto una versión simple para guiarte.

Te recomiendo que cuando quieras hacer cosas mires el API: http://api.cakephp.org/1.2/classes.html. Muchas veces hacemos cosas que ya estaban hechas y perdemos el tiempo con ello. Te vendrá muy bien mirar los métodos de las clases "Model" y "Controller".

Un saludo.