El poder de los formularios Symfony
Los formularios de Symfony son, al mismo tiempo, el componente más poderoso de Symfony y la parte más temida por los programadores. El problema es que son un poco difíciles de utilizar, por lo que el nuevo framework de formularios de Symfony 2 va a facilitar mucho su uso.
No obstante, en ocasiones los formularios de Symfony muestran todo su poder de una forma tan sencilla que parece mágica. Observa lo que puedes conseguir con una sola línea de código si utilizas Propel y el nuevo plugin sfPropel15Plugin:
mergeRelation from Francois Zaninotto on Vimeo.
Fuente: Embed Relation Forms in One Line with sfPropel15Plugin (Video)
Comentarios
-
#1
La verdad es que tengo bastante abandonado symfony por el curro (ahora estamos aventurandonos con grails, cuanto le queda por recorrer) pero en mis últimas intentonas lo que más problemas me dio fue unos combos dependientes igual de fácilmente que se hacía con symfony 1.0, pero con symfony 1.4.
-
#2
Hola he intentado instalar este plugin en Symfony 1.4, pero no me deja, el error que me da es No release available for plugin "sfPropel15Plugin". Lo he intentado descargando el paquete y tampoco, las lineas mostradas son las siguientes:
> plugin installing plugin "sfPropel15Plugin-1.0.0.tgz" >> sfPearFrontendPlugin No files in section of package.xml >> sfPearFrontendPlugin No maintainers found, at least one must be defined >> sfPearFrontendPlugin No release notes found >> sfPearFrontendPlugin No release date found >> sfPearFrontendPlugin No release state found >> sfPearFrontendPlugin No release version found >> sfPearFrontendPlugin Missing license >> sfPearFrontendPlugin Missing description >> sfPearFrontendPlugin No summary found >> sfPearFrontendPlugin Missing Package Name >> sfPearFrontendPlugin Parsing of package.xml from file >> sfPearFrontendPlugin "/srv/www/vhosts/controlasistencia/GestionAdministracion/interface/cache/.pear/sfPropel15Plugin-1.0.0/lib/vendor/propel-generator/pear/build-pear-package.xml" >> sfPearFrontendPlugin failed
Plugin "sfPropel15Plugin-1.0.0.tgz" installation failed:
Si alguién me puede ayudar os lo agradezco. saludos
-
#3
Pily, también puedes instalar el plugin mediante Subversion:
svn co http://svn.symfony-project.com/plugins/sfPropel15Plugin/trunk plugins/sfPropel15Plugin
Y una vez instalado, no te olvides de leer su documentación porque hay que configurar algunas opciones y ejecutar algún comando más: http://www.symfony-project.org/plugins/sfPropel15Plugin/1_0_0
-
#4
Ya lo he logrado instalar, ahora el problema está que al generar de forma automática el interfaz de administrador, y dar a Save, me da error de que los campos están vacios y sale el siguiente warning:
Warning: array_key_exists(): The first argument should be either a string or an integer in /srv/www/htdocs/PruebaEmbebido/lib/vendor/symfony/lib/util/sfParameterHolder.class.php on line 53
No se que es lo que ocurre. Gracias por contestar. Saludos!
-
#5
Solucionado! no hace falta que contesteis. Ciaoo
-
#6
@Pily si nos indicas donde tienes el fallo quizás le pueda servir a otra persona
-
#7
Yo no entiendo por qué a partir de 1.4 el ORM oficial es Doctrine, y ahora siguen dando ejemplos con Propel...
-
#8
@David, la principal razón por la que se quedaron con Doctrine es que en ese momento Propel estaba completamente muerto. Sin embargo, desde que lo cogió François Zaninotto, Propel ha revivido con más fuerza que nunca y es una durísima competencia a Doctrine.
Symfony 2 seguirá soportando los dos ORM de forma nativa, aunque los responsables de Symfony se hayan decantado por Doctrine.
-
#9
Hola Javier,
Pues Jonathan Wage debe de estar con la mosca detrás de la oreja y muchos desarrolladores también. La apuesta por Doctrine fue tan fuerte que acabaron contratando a su propio creador. En Sf 1.4 se dejaba claro que Doctrine era el OFICIAL, y por tanto más valía irse olvidando de Propel. Pero es que además Doctrine 2 ya se está cociendo y promete bastante, según las diapos de su creador.
Un detalle más: estoy leyendo el Cap. 1 de "A gentle introduction", y cuando se habla de los dos ORM más importantes... se menciona a Propel primero!!!:
Out of the box, symfony supports the two most popular open source ORMs in PHP: Propel and Doctrine. Symfony integrates both of them seamlessly. When creating a new symfony project, it's a matter of choice to use Propel or Doctrine. This book will describe how to use the Propel and Doctrine objects, but for a more complete reference, a visit to the Propel website or the Doctrine website is recommended.
Creo que esto puede generar bastante confusión en la comunidad de programadores. Me encanta que vuelva Zaninotti pero creo que alguien debería aclarar algunos puntos.
Un saludo
-
#10
Hola, yo tengo instalado symfony 1.4 y he estado siguiendo el proyecto Joobet, pero no me ha quedado claro, el como puedo cambiar un InputText por un Textarea de un formulario, a que archivos debo ir?
Se me ocurrio ir ..lib/form/doctrine/BaseJobeetJobForm.class hice los cambios sin resultados.
Saludos.
-
#11
Elizabeth, lo tienes que hacer dentro del método configure() del formulario que encontrarás en el directorio lib/form/doctrine
Nunca toques un formulario que se llame BaseXXXXXX porque esos son los que genera automáticamente Symfony. Tienes que tocar el formulario lib/form/doctrine/JobeetJobForm.class.php
-
#12
Buenas gente, alguno me podria ayudar a instalar este plugin en Windows XP? es que no se mucho de svn y una ayuda me vendria bien. Gracias de antemano por leerme.
-
#13
Hola, Tengo un modelo con una tabla 'galerias' y otra 'fotografias', una 'galeria' está relacionada con n 'fotografias' y utilizo el método mergeRelations de sfPropel15Plugin en el formulario 'galeriasForm. Mi problema viene en que tengo redefinido el metodo 'doSave' del formulario 'fotografiasForm' y a la hora de guardar el formulario 'galeriasForm' con los formularios 'fotografiasForm' asociados éste método no se ejecuta con lo que toda la lógica incluida en este método para guardar las fotografias se pierde.
Alguien a tenido un problema similar, parece ser que guarda los objetos pero saltándose el método save() del formulario 'fotografiasForm' y por consiguiente los dosave y updateObject().
Un saludo
-
#14
Angel, tengo el mismo inconveniente que tú, estoy definiendo una funcion doSave dentro de una clase form, pero este no se ejecuta cuando guardo información. Si ya lo solucionaste porfavor, muestranos como.
Este artículo ya no permite añadir más comentarios.
¿Por qué? Los artículos cierran sus comentarios automáticamente
unos meses después de su publicación para asegurar que estos sigan
siendo relevantes.
Proyectos Symfony destacados
La forma más sencilla de generar el backend de tus aplicaciones Symfony. Ver más
Síguenos en @symfony_es para acceder a las últimas noticias.