Twig Render Controller

Buenas Tardes:

Después de crear el formulario como servicio, con Twig lo pinto en el html.

<div>
{{ render(controller(
         'UploadBundle:Upload:formUpload',
         {'idTipo':0,'tipo':0,'idAgregado':0,'categoria':0 }
         )) }}
</div>

Lo que me crea, es un formulario para subir ficheros. Lo he diseñado para poder reutilizarlo.

<fieldset class="formStyle">
    <legend>Anexo 2A( Contrato):</legend>
 
    {{ form_start(formulario_upload, {'action': path('contrato_upload'), 'method': 'POST'}) }}
 
    {{ form_row(formulario_upload.idTipo,{'value': archivo.idTipo}) }}
    {{ form_row(formulario_upload.tipo,{'value': archivo.tipo}) }}
    {{ form_row(formulario_upload.idAgregado,{'value': archivo.idAgregado}) }}
    {{ form_row(formulario_upload.categoria,{'value': archivo.categoria}) }}
 
    {{ form_errors(formulario_upload.file) }}
    {{ form_row(formulario_upload.file) }}
    {{ form_row(formulario_upload._token) }}
    <input type="submit" value="Guardar"/>
 
    {{ form_end(formulario_upload) }}
</fieldset>

El problema lo tengo en el action del formulario, que en cada apartado es diferente porque cuando se carga un fichero quiero que vuelva a la página de donde se ha realizado el submit.

Mi opción es pasar el action al controlador.

<div>
{{ render(controller(
         'UploadBundle:Upload:formUpload',
         {'idTipo':0,'tipo':0,'idAgregado':0,'categoria':0, 'action':X }
         )) }}
</div>

¿Pero existe algo que después de un submit symfony vuelva a la página donde se ha realizado la petición?

Muchas Gracias

Respuestas

#1

Hola.

¿Un hidden no te serviría?

<input type="submit" value="Guardar" />
<input type="hidden" value="/pagina" />

Saludos.

#2

Buenas Bernard.

Al final lo que he hecho es crear hidden en el formulario y he puesto uno que sea el action.

/**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('file', FileType::class, array('label' => 'Subir archivo'))
            ->add('idTipo', HiddenType::class)
            ->add('tipo', HiddenType::class)
            ->add('idAgregado', HiddenType::class)
            ->add('categoria', HiddenType::class)
            ->add('action', HiddenType::class);
    }

Me guardo el campo action en la BD y también el id de la Entidad a la que pertenece el fichero.

No se si es correcto del todo, pero me funciona.