Symfony - codificar caracteres especiales en una url

 
Vista:
sin imagen de perfil

codificar caracteres especiales en una url

Publicado por gg (3 intervenciones) el 14/07/2020 12:06:23
Buenos dias,

Tengo un portal en el cual los usuarios insertan incidencias por medio de un formulario simple. Cuando crean las incidencias, se pintan en una tabla en la cual estan todas las creadas hasta ese dia y en las cuales pueden añadir comentarios si estas siguen abiertas.

El problema lo tengo al añadir estos comentarios ya que al insertar caracteres especiales como pueden ser "&%$#/+" la pagina enseña un error de "objeto no localizado".

Este es el script que tengo en el archivo html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{% block javascripts %}
	<script>
		function addObs(id){
			$('#incidenciaid3').val(id);
			$("#myModal3").modal("toggle");
		}
		$('#botonguardar').on('click', function() {
			$("#myModal3").modal("toggle");
			var url = "{{path('incidencias_add_obs', {'incidencia': 'incidenciaid3','estado': 2,'obs': 'valorobs','redireccion': 2 })}}";
			url = url.replace("incidenciaid3", $('#incidenciaid3').val());
			var res = url.replace(url);
			if($('#obs').val() == "")
				url = url.replace("valorobs", "Ninguna observación añadida.");
			else
				url = url.replace("valorobs", $('#obs').val());
			window.location.href = url;
		});
</script>
{% endblock %}

Y este el codigo que tengo en el Controller con el metodo para añadir estos comentarios:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public function incidencias_add_obsAction(IncidenciasIncidencias $incidencia, IncidenciasEstados $estado, $obs, $redireccion)
{
    if($this->get('funciones')->tienePermiso(25,$this) || $this->get('funciones')->tienePermiso(32,$this)){
 
        $nuevaobsinc = new IncidenciasAcciones();
 
        try {
            $em = $this->getDoctrine()->getManager();
            $user = $this->get('security.token_storage')->getToken()->getUser();
            $nuevaobsinc->setIncidencia($incidencia)->setFechor(new \DateTime())->setObservaciones($obs)->setUsuario($user);
            $incidencia->setEstado($estado);
            $em->persist($incidencia);
            $em->persist($nuevaobsinc);
            $em->flush();
            $this->get('session')->getFlashBag()->add('notice','Se han añadido las observaciones para la incidencia '.$incidencia->getId(). ' y cambiado su estado a '.$estado->getNombre().'.');
 
        } catch (\Exception $e) {
            if(get_class($e) != "Doctrine\DBAL\Exception\UniqueConstraintViolationException" && get_class($e))
                $this->get('session')->getFlashBag()->add('error','ERROR: Ha ocurrido un error insertando los datos. '.$e);
        }
        if($redireccion == 2)
            return $this->redirect($this->generateUrl('incidencias', array('id' => $incidencia->getMotivo()->getClase()->getTipo()->getId())));
        else
 
            if($redireccion == 1)
                return $this->redirect($this->generateUrl('incidencias_admin', array('id' => $incidencia->getMotivo()->getClase()->getTipo()->getId())));
            else
 
                return $this->redirect($this->generateUrl('incidencias_responsable', array('id' => $incidencia->getMotivo()->getClase()->getTipo()->getId())));
    }
    else throw new AccessDeniedException();
}

Sabeis como hacer para que coja bien estos caracteres?

Saludos y gracias de antemano, voy un poco perdido, hace poco que empece a usar symfony.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder