Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Donde guardar "nombre en Español" de las columnas de una DB para mostrar n las vistas

Estas en el tema de Donde guardar "nombre en Español" de las columnas de una DB para mostrar n las vistas en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Estoy empezando a desarrollar proyectos de aplicaciones web y me surgen muchas dudas, ademas que soy un tio que le gusta hacer las cosas bien, ...
  #1 (permalink)  
Antiguo 07/12/2012, 09:53
 
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 150
Antigüedad: 12 años, 2 meses
Puntos: 0
Donde guardar "nombre en Español" de las columnas de una DB para mostrar n las vistas

Estoy empezando a desarrollar proyectos de aplicaciones web y me surgen muchas dudas, ademas que soy un tio que le gusta hacer las cosas bien, a cada paso me surge una duda, por buscar una manera optima y bonita de hacer las cosas.

Estoy utilizando doctrine, creo las entidades y todo bien, las he definido con anotaciones.

La cosa es que busco una manera de guardar el nombre en lenguaje español ( nombre -> Nombre producto, urlRelativa -> Url Relativa, fkidcategoria -> Categoria padre ) de las columnas en algun sitio y recuperarlo despues para mostrarlo en las vistas.

Por ejemplo voy a hacer un listado con un filtro y tengo que escribir los nombres de las columnas de la base de datos en los label del form. Y tambien en las tablas en las casillas cabecera tengo que escribir el nombre en español de las columnas de la base de datos. No quiero poner nombre, quiero poner Nombre producto o por ejemplo no quiero poner fkidcategoria, quiero que ponga Categoria padre.
Y no quiero escribirlo a mano en las vistas cada vez que lo necesite. Quiero una manera de conseguirlo de alguna forma pues hay una relacion evidente.

¿ Que me decis al respecto ? Gracias de antemano.
  #2 (permalink)  
Antiguo 07/12/2012, 10:03
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Donde guardar "nombre en Español" de las columnas de una DB para mostrar n

Para la traducción de las propiedades de una entidad puedes utilizar la extensión Translatable.

En relación al otro caso que mencionas eso ya depende del fw que estés utilizando pero en la mayoría de los casos basta con pasar el label por el translator.

Y te hago una sugerencia, evita usar nombres como fkidcategoria si te apegas a la convención de nombres de Doctrine vas a escribir bastante menos metadata ;)

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 07/12/2012, 10:11
 
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 150
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Donde guardar "nombre en Español" de las columnas de una DB para mostrar n

Cita:
Iniciado por masterpuppet Ver Mensaje
Para la traducción de las propiedades de una entidad puedes utilizar la extensión Translatable.

En relación al otro caso que mencionas eso ya depende del fw que estés utilizando pero en la mayoría de los casos basta con pasar el label por el translator.

Y te hago una sugerencia, evita usar nombres como fkidcategoria si te apegas a la convención de nombres de Doctrine vas a escribir bastante menos metadata ;)

Saludos.
Muchisimas gracias por la pronta respuesta.

Voy a echarle un vistazo a lo del translatable ese.

Referente a lo de pasar el label por el translator me imagino que quieres decir pero no tengo ni idea del tema.
¿ Que es el label ? ¿ el atributo ?
Estoy utilizando un fw basico, pues estoy empezando.
Tendre que echar un vistazo a la conveccion de nombres Doctrine tambien, por que no se muy bien a la ventaja que te refieres de usarlo.

Muchas gracias, si puedes darme alguna pequeña aclaracion te estaria muy agradecido. Un saludo crack!


EDIT: creo que no es exactamente lo que busco. Lo del translatable sirve para guardar distintos valores segun lenguaje de un campo de un registro, pero yo lo que quiero guardar como una cadena de texto es otro nombre a mostrar en las vistas para el nombre del campo, columna de cada tabla de la base de datos.
Por ejemplo:

id ( "Esto es la ID" )
0
1
2

fkidcategoria ( "Categoria padre" )
1
1
1

titulo ( "Título" )
titulo 1
titulo 2
titulo 3

Yo no quiero guardar distintos valores de "titulo 1" segun su lenguaje, yo lo que quiero guardar es "Título", "Categoria padre" ..


Creo que sobre lo que yo hablo es sobre la metadata, que quizas se pueda resolver con anotaciones, creando un tipo de atributo nuevo, y con algun metodo lo podamos recuperar con doctrine facilmente, pero no se exactamente como se hace. Voy a seguir mirando.
Si algun crack puede echarme una mano estaria muy agradecido.
Gracias.

PD: Ahora asi revisando el título veo por que masterpuppet has podido equivocarte y es que el título del post no es todo lo bueno que podria ser.
"Donde guardar 'nombre como cadena de texto' del nombre de las columnas de una DB para mostrar en las vistas"

Última edición por chemajmb; 07/12/2012 a las 13:07
  #4 (permalink)  
Antiguo 07/12/2012, 15:17
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Donde guardar "nombre en Español" de las columnas de una DB para mostrar n

Ahhhhhhhhhhh, en la única parte que interviene doctrine en lo que tu comentas seria en la obtención de la metadata y ni eso seria obligatorio ya que lo podrías hacer a través de Reflection, ahora, el como hacerlo depende del fw que estas utilizando, como manejas el i18n en tu fw ?
__________________
http://es.phptherightway.com/
thats us riders :)
  #5 (permalink)  
Antiguo 07/12/2012, 15:59
 
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 150
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Donde guardar "nombre en Español" de las columnas de una DB para mostrar n

Cita:
Iniciado por masterpuppet Ver Mensaje
Ahhhhhhhhhhh, en la única parte que interviene doctrine en lo que tu comentas seria en la obtención de la metadata y ni eso seria obligatorio ya que lo podrías hacer a través de Reflection, ahora, el como hacerlo depende del fw que estas utilizando, como manejas el i18n en tu fw ?
No lo habia contemplado pues estoy empezando. Ni siquiera sabia que i18n significa, lo acabo de mirar en el google ahora.
Pero si, no te discuto que es un punto muy importante en un proyecto web, pero estoy empezando y estoy haciendome fuerte en otros puntos.
Estoy usando un patron MVC, aprendiendo javascript, ajax, jquery, doctrine ( anotations, ... ) etc, cogiendo conceptos y aprendiendo cosas para ahora aplicarlas.
Y claro, al desarrollar el proyecto me surgen dudas.
Asi que no se, tendre que leer un poco sobre este tema tambien, pues es importante.

Si quieres recomendarme, explicarme las opciones que hay u otras sugerencias, te estare muy agradecido.

Un saludo y gracias.
  #6 (permalink)  
Antiguo 07/12/2012, 18:10
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Donde guardar "nombre en Español" de las columnas de una DB para mostrar n

No es un tema trivial, honestamente te sugiero que utilices un buen framework como puede ser Zend o Symfony en vez de estar haciendo desde cero, o bien utilices los componentes para i18n de dichos fw's, te dejo las referencias.

https://github.com/zendframework/zf2...rary/Zend/I18n
https://github.com/symfony/Translation

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #7 (permalink)  
Antiguo 09/12/2012, 15:55
 
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 150
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Donde guardar "nombre en Español" de las columnas de una DB para mostrar n

¿ Nadie tiene alguna brillante solucion ?

"Donde guardar 'nombre como cadena de texto' del nombre de las columnas de una DB para mostrar en las vistas"

Etiquetas: doctrine2
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 22:02.