En Symfony3 y Symfony2.8 Cuando intentamos generar un formulario vinculado a un modelo que tiene algun tipo de relación con otra entidad de Doctrine, nos falla al generar el campo que se relaciona con la otra entidad.
Si lanzamos:
php bin/console doctrine:generate:form AppBundle:Post
Nos puede dar un error así:
[Twig_Error_Runtime]
Key «category» for array with keys «id, description» does not exist in «form/FormType.php.twig» at line 29
Esto es un bug que todavia no han corregido, porque son versiones de Symfony muy recientes.
La solución es entrar al directorio vendor/sensio/generator-bundle/Resources/skeleton/form/FormType.php.twig
y en la linea 29 cambiar esto
{%- if fields_mapping[field]['type'] in ['date', 'time', 'datetime'] %}
por esto
{%- if fields_mapping[field] is defined and fields_mapping[field]['type'] in ['date', 'time', 'datetime'] %}
Lo que le estamos diciendo es que genere el campo si el campo está definido en la clase de la entidad, es decir, si ese campo está mapeado por el ORM y si el es del tipo date, time o datetime. Antes no comprobaba si ese campo estaba definido y al no estar definido tampoco podia sacar de que tipo era.
Con esto ya podemos generar formularios sin que falle.
Más información:
http://stackoverflow.com/questions/33851148/twig-error-runtime-on-symfony2