Pregunta:
Fecha: 03-03-2019 18:13:53
(En Español)
[url=https://ibb.co/zbx47XN]
[/url]
Error al definir la variable data[Resuelta]
Me esta saliendo un error en Posman[url=https://ibb.co/zbx47XN]
[/url] public function editAction(Request $request) {
$helpers = $this->get("app.helpers");
$hash = $request->get("authorization", null);
$authCheck = $helpers->authCheck($hash);
if ($authCheck == true) {
$identity = $helpers->authCheck($hash, true);
$em = $this->getDoctrine()->getManager();
$user = $em->getRepository("BackendBundle:User")->findOneBy(array(
"id" => $identity->sub
));
$json = $request->get("json", null);
$params = json_decode($json);
$data = array(
"status" => "error",
"code" => 400,
"msg" => "Usuario no actualizado"
);
if ($json != null) {
$createAt = new \Datetime("now");
$image = null;
$role = "user";
$email = (isset($params->email)) ? $params->email : null;
$name = (isset($params->name)) ? $params->name : null;
$surname = (isset($params->surname)) ? $params->surname : null;
$password = (isset($params->password)) ? $params->password : null;
$emailConstraint = new Assert\Email();
$emailConstraint->message = "Este correo electrónico no es válido";
$validate_email = $this->get("validator")->validate($email, $emailConstraint);
if ($email != null && count($validate_email) == 0 &&
$name != null && $surname != null
) {
$user->setCreatedAt($createAt);
$user->setImage($image);
$user->setRole($role);
$user->setEmail($email);
$user->setName($name);
$user->setSurname($surname);
if($password != null){
// Cifrar la password
$pwd = hash('sha256', $password);
$user->setPassword($pwd);
}
$em = $this->getDoctrine()->getManager();
$isset_user = $em->getRepository("BackendBundle:User")->findBy(
array(
"email" => $email
));
if (count($isset_user) == 0 || $identity->email == $email) {
$em->persist($user);
$em->flush();
$data["status"] = 'success';
$data["code"] = 200;
$data["msg"] = 'Se ha editado tus datos con exito';
} else {
$data = array(
"status" => "error",
"code" => 400,
"msg" => "No se ha podido editar este usuario, porque esta duplicado"
);
}
}
} else {
$data = array(
"status" => "error",
"code" => 400,
"msg" => "Autorizacion no valida"
);
}
}
return $helpers->json($data);
}
Votos: 0 -
Respuestas: 3 -
Vistas: 6
Compartir en: Google
Facebook
Twitter
LinkedIn
Link
Respuestas:
-
Fecha: 04-03-2019 03:15:38 Eso es porque estas intentando retornar la variable en la linea 84 fuera de tui primer if, y antes de este esta no esta declarada, verifica tu arbol de validaciones, esta deberia de esta creo antes del cierre de llave en la linea 83 Votos: 0 - Link respuesta
-
Fecha: 04-03-2019 06:49:40 Hola Carlos aprecio tu repuesta a mi pregunta, pero seria de mayor utilidad para mi si colocaras un ejemplo como parte de la respuesta ya que eso que intentas decirme creo verlo hecho sin lograr solucionar el error. Votos: -1 - Link respuesta
-
Fecha: 04-03-2019 10:40:29 Hola Braylin,
Carlos tiene razón. Se ve claramente en tu código que no estás declarando la variable a tiempo.
Te dejo el ejemplo. Removí los bloques else que eran innecesarios y los códigos de error son más claros al utilizarlos apropiadamente.
public function editAction(Request $request) { $helpers = $this->get('app.helpers'); $hash = $request->get('authorization', null); $authCheck = $helpers->authCheck($hash); $data = [ 'status' => 'error', 'code' => 401, 'msg' => 'Fallo al autenticar', ]; if ($authCheck === true) { $identity = $helpers->authCheck($hash, true); $em = $this->getDoctrine()->getManager(); $user = $em->getRepository('BackendBundle:User')->findOneBy([ 'id' => $identity->sub, ]); $json = $request->get('json', null); $params = json_decode($json); $data['code'] = 400; $data['msg'] = 'Petición inválida'; if ($json !== null) { $createAt = new \Datetime('now'); $image = null; $role = 'user'; $email = isset($params->email) ? $params->email : null; $name = isset($params->name) ? $params->name : null; $surname = isset($params->surname) ? $params->surname : null; $password = isset($params->password) ? $params->password : null; $emailConstraint = new Assert\Email(); $emailConstraint->message = 'Este correo electrónico no es válido'; $validate_email = $this->get('validator')->validate($email, $emailConstraint); if ($email !== null && $name !== null && $surname !== null && count($validate_email) === 0) { $user->setCreatedAt($createAt); $user->setImage($image); $user->setRole($role); $user->setEmail($email); $user->setName($name); $user->setSurname($surname); if ($password !== null) { // Cifrar la password $pwd = hash('sha256', $password); $user->setPassword($pwd); } $em = $this->getDoctrine()->getManager(); $isset_user = $em->getRepository('BackendBundle:User')->findBy( [ 'email' => $email, ]); $data['code'] = 500; $data['msg'] = 'No se ha podido editar este usuario, porque esta duplicado'; if ($identity->email === $email || count($isset_user) === 0) { $em->persist($user); $em->flush(); $data['status'] = 'success'; $data['code'] = 200; $data['msg'] = 'Se ha editado tus datos con exito'; } } } } return $helpers->json($data); }
Saludos Votos: 0 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
