Foros del Web » Programando para Internet » PHP » Symfony »

symfony: problema crear objetos de una clase y guardarlos

Estas en el tema de symfony: problema crear objetos de una clase y guardarlos en el foro de Symfony en Foros del Web. Hola estoy utilizando Symfony (la version estable anterior a la 2), pero no uso la parte de la Vista del MVC, esa esta en otra ...
  #1 (permalink)  
Antiguo 14/11/2012, 16:05
Avatar de laqmaslocaesta  
Fecha de Ingreso: octubre-2012
Mensajes: 26
Antigüedad: 11 años, 5 meses
Puntos: 1
Pregunta symfony: problema crear objetos de una clase y guardarlos

Hola

estoy utilizando Symfony (la version estable anterior a la 2), pero no uso la parte de la Vista del MVC, esa esta en otra aplicación.

El caso es que estoy modificando a mano las acciones dentro del archivo actions.class.php y he encotrado un problema cuando he querido añadir un nuevo objeto a la clase Alumnos (es decir añadir un nuevo registro a mi base de datos MySQL)

El codigo del metodo que me da problemas es:

Código:
  public function executeNew(sfWebRequest $request)
  {
	$apellidoint=$request->getParameter('apellido');
	$edadint=$request->getParameter('edad');
	$correoint=$request->getParameter('correo');	
	//Primero comprobamos si el alumnos existe en la base de datos
	//De ser así enviaremos un mensaje de error
	//En caso de no existir será creado
	$this->alumnos = Doctrine_Core::getTable('Alumnos')->findOneByNombre($request->getParameter('nombre'));
	if($this->alumnos && $apellidoint==$this->alumnos->getApellido() && $ageint=$this->alumnos->getEdad() && $email=$this->alumnos->getCorreo()){		
	$salida['tipo']='0';
	$salida['list']='El alumno ya existe en la base de datos';	
	}else{
	$alumno = new Alumnos();
	$alumno->setNombre($request->getParameter('nombre'));
	$alumno->setApellido($apellidoint);
	$alumno->setEdad($edadint);
	$alumno->setCorreo($correoint);
	$alumno->setId_carrera('1');
	$alumno->setCreated(new \DateTime());
	$alumno->setUpdated(new \DateTime());
	$alumno->save();
	$this->getResponse()->setContentType('application/json');
	$salida=array();
	$salida['tipo']='1';
	$salida['list']='El alumno ha sido insertado correctamente en la base de datos';
	}
	return $this->renderText(json_encode($salida));

  }
La primera parte del código donde verifico si el alumno existe funciona perfectamente.

lo he verificando mediante una llamada desde el navegador.

en la segunda donde creo ya añado el objeto es donde tengo el problema y no se donde

llamo por el navegador al metodo introduciendo los datos de un alumno que no se encuentra en la base de datos:

Código:
http://localhost/alumnos/New?nombre=Angy&apellido=Pani&edad=46&correo=angel@angel
Tras verificar la linea del save:

Código:
	$alumno->save();
todo funciona bien mientras no se ejecute esta linea (con esta linea comentada, todo funciona correctamente, no da errores, aunque el alumno no se introduce que es el proposito del metodo)

no entiendo cual es el error.

Alguien me sabria indicar???

Muchas Gracias

Última edición por laqmaslocaesta; 14/11/2012 a las 16:13
  #2 (permalink)  
Antiguo 14/11/2012, 16:29
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: symfony: problema crear objetos de una clase y guardarlos

¿cual es el error generado?
  #3 (permalink)  
Antiguo 14/11/2012, 16:36
Avatar de laqmaslocaesta  
Fecha de Ingreso: octubre-2012
Mensajes: 26
Antigüedad: 11 años, 5 meses
Puntos: 1
Respuesta: symfony: problema crear objetos de una clase y guardarlos

cuando lo ejecuto me sale la pagina de error de symfony , pero aparte de eso, nada mas
  #4 (permalink)  
Antiguo 14/11/2012, 16:41
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 137
Respuesta: symfony: problema crear objetos de una clase y guardarlos

siempre la pagina de error trae una explicacion, deberias entrar con frontend_dev o modificar manualmente el index.php para que muestre los errores
  #5 (permalink)  
Antiguo 14/11/2012, 16:48
Avatar de laqmaslocaesta  
Fecha de Ingreso: octubre-2012
Mensajes: 26
Antigüedad: 11 años, 5 meses
Puntos: 1
Respuesta: symfony: problema crear objetos de una clase y guardarlos

ya lo he solucionado, aunque no sepa como mirar los errores de symfony (SOY MUY NOVATA), la solucion es:

Código:
}else{
	$alumno = new Alumnos();
	$alumno->setNombre($request->getParameter('nombre'));
	$alumno->setApellido($apellidoint);
	$alumno->setEdad($edadint);
	$alumno->setCorreo($correoint);
	$alumno->setIdCarrera('1');
	$alumno->save();
	$this->getResponse()->setContentType('application/json');
	$salida=array();
	$salida['tipo']='1';
	$salida['list']='El alumno ha sido insertado correctamente en la base de datos';
	}
hemos eleminado:

ya lo he solucionado, aunque no sepa como mirar los errores de symfony la solucion es:

Código:
	$alumno->setCreated(new \DateTime());
	$alumno->setUpdated(new \DateTime());
supongo que con el save lo hace solo y tendria algun conflicto

Muchas Gracias
  #6 (permalink)  
Antiguo 14/11/2012, 16:49
Avatar de laqmaslocaesta  
Fecha de Ingreso: octubre-2012
Mensajes: 26
Antigüedad: 11 años, 5 meses
Puntos: 1
Respuesta: symfony: problema crear objetos de una clase y guardarlos

Cita:
Iniciado por abimex Ver Mensaje
siempre la pagina de error trae una explicacion, deberias entrar con frontend_dev o modificar manualmente el index.php para que muestre los errores
Pues yo siempre que tengo un error me sale la misma pagina Symfony y son errores distintos, mirare lo de modificar el index.php

Gracias
  #7 (permalink)  
Antiguo 14/11/2012, 19:13
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 137
Respuesta: symfony: problema crear objetos de una clase y guardarlos

antes de modificar el index.php te recomiendo que uses el frontend_dev.php que precisamente es para estar desarrollando. Si optas por modificar el index.php cambias los ultimos dos parametros por dev y true
ej
Código PHP:
Ver original
  1. <?php
  2. $configuration = ProjectConfiguration::getApplicationConfiguration('##APP_NAME##', 'dev', 'true');

Etiquetas: clase, objetos, php
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 15:03.