Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Twig php, no me llama las variables con simbolo -

Estas en el tema de Twig php, no me llama las variables con simbolo - en el foro de PHP en Foros del Web. Hola amigos, una pregunta rapida, estoy usando Twig para templates php pero cuando quiero llamar una variable que se llama (por ejemplo) variable-nombre: {{ orders.variable-nombre ...
  #1 (permalink)  
Antiguo 12/03/2015, 04:21
Avatar de Ferdinand1945  
Fecha de Ingreso: noviembre-2010
Ubicación: Estocolmo
Mensajes: 62
Antigüedad: 13 años, 5 meses
Puntos: 1
Busqueda Twig php, no me llama las variables con simbolo -

Hola amigos, una pregunta rapida, estoy usando Twig para templates php pero cuando quiero llamar una variable que se llama (por ejemplo) variable-nombre: {{ orders.variable-nombre }} no me la llama, se que Twig tiene problemas con el simbolo de - por que los blocks tampoco me los deja crear con ese sibolo {% block algun-nombre %}, Mi pregunta es.... hay alguna manera de solucionar eso sin cambiar o tener que crear todas las variables otra vez?
Desde ya agradecido y si me pueden ayudar, mas agradecido aun!!!
  #2 (permalink)  
Antiguo 12/03/2015, 06:54
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Twig php, no me llama las variables con simbolo -

Pues yo creo que si Twig tiene problemas con eso será por algo, ¿ya revisaste en su documentación al respecto?

Sentido común por favor.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 12/03/2015, 07:27
Avatar de Ferdinand1945  
Fecha de Ingreso: noviembre-2010
Ubicación: Estocolmo
Mensajes: 62
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Twig php, no me llama las variables con simbolo -

Si pero no encontre nada al respecto y me recorri 20 foros distintos + su pagina... lo que pense al final es quizas redeclarar las variables

$orderData['deliveryAdress']; => $orderData['delivery-adress'];

como seria una manera correcta de hacerlo?
Gracias por la respuesta, estoy hace rato con esto asi que el sentido comun lo perdi a las 11 de la mañana (ya son las 14:30)
  #4 (permalink)  
Antiguo 12/03/2015, 07:31
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Twig php, no me llama las variables con simbolo -

Cita:
como seria una manera correcta de hacerlo?
¿Te refieres a reescribir las variables?

Pues no te queda de otra, si Twig sencillamente no admite los guiones ahí tienes.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 12/03/2015, 07:51
Avatar de Ferdinand1945  
Fecha de Ingreso: noviembre-2010
Ubicación: Estocolmo
Mensajes: 62
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Twig php, no me llama las variables con simbolo -

Si la manera correcta de reescribir variables sin cambiarle el nombre a las que ya tengo... por que estoy trabajando con un sistema enorme y cambiar los nombres de las variables no es una opcion, pero si darle 2 nombres a un mismo dato o variable (creo que eso podria funcionar) solo que no estoy muy seguro de como hacerlo...
  #6 (permalink)  
Antiguo 12/03/2015, 07:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Twig php, no me llama las variables con simbolo -

Ah, vale, ya entiendo.

Sí, ahora tienes un array con claves tipo "foo-bar" y necesitarías transformarlas a camelCase, es decir "fooBar".

Ese es el nombre del estilo de cadena a reescribir, una forma simple sería así:
Código PHP:
Ver original
  1. function camelcase($text) {
  2.   return preg_replace_callback('/-([a-z])/', function($matches) {
  3.     return strtoupper($matches[1]);
  4.   }, $text);
  5. }
  6.  
  7. function camelcase_keys($array) {
  8.   $copy = array();
  9.  
  10.   foreach ($array as $key => $value) {
  11.     $copy[camelcase($key)] = $value;
  12.   }
  13.  
  14.   return $copy;
  15. }
  16.  
  17. var_dump(camelcase('foo-bar'));
  18. var_dump(camelcase_keys(array('foo-bar' => 'OK')));
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 12/03/2015, 11:06
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Twig php, no me llama las variables con simbolo -

Cita:
Iniciado por Ferdinand1945 Ver Mensaje
Hola amigos, una pregunta rapida, estoy usando Twig para templates php pero cuando quiero llamar una variable que se llama (por ejemplo) variable-nombre: {{ orders.variable-nombre }} no me la llama, se que Twig tiene problemas con el simbolo de - por que los blocks tampoco me los deja crear con ese sibolo {% block algun-nombre %},
Que divertido, precisamente esto es lo que pasa cuando no se leen las instrucciones.
cuando tu haces cosas como esta:
Código PHP:
Ver original
  1. {{ orders.variable-nombre }}
twig lo interpreta de la siguiente forma (una substracción):
Código PHP:
Ver original
  1. {{ orders.variable - nombre }}
Referencia: http://twig.sensiolabs.org/doc/templates.html#math
Cita:
hay alguna manera de solucionar eso sin cambiar o tener que crear todas las variables otra vez?
Puedes tomar la solución de pateketrueke o haber leído el manual
Cita:
When the attribute contains special characters (like - that would be interpreted as the minus operator), use the attribute function instead to access the variable attribute:
Código PHP:
Ver original
  1. # equivalent to the non-working foo.data-foo #}
  2. {{ attribute(foo, 'data-foo') }}
Referencia: http://twig.sensiolabs.org/doc/templates.html#variables

Moraleja: lee el manual con calma campeón
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #8 (permalink)  
Antiguo 04/05/2015, 01:53
Avatar de Ferdinand1945  
Fecha de Ingreso: noviembre-2010
Ubicación: Estocolmo
Mensajes: 62
Antigüedad: 13 años, 5 meses
Puntos: 1
De acuerdo Respuesta: Twig php, no me llama las variables con simbolo -

Gracias, lo habia probado cambiar desde el codigo fuente de twig pero sin resultado...

Código PHP:
# equivalent to the non-working foo.data-foo #}
{{ attribute(foo'data-foo') }} 
al final lo solucione renombrando las variables y aprendi a no usar guiones cuando uso twig :p Muchas gracias por la ayuda a todos!! marco como solucionado!

Etiquetas: css, html5, templates
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 21:47.