KumbiaPHP, aprovechando el Redirect::to

En uno de los proyectos que estábamos desarrollando con algunos amigos de la universidad con el framework KumbiaPHP, tenía que trabajar en un módulo para hacer el CRUD de una entidad llamada “canción”.

Quisiera contarte lo que me pasó.

Había ya logrado que se actualizaran los datos en la base de datos, con un método editar, pero necesitaba que una vez actualizados, desde ese método me redirigiera a otro lugar.

Al hacer uso de Redirect::to(), me enviaba a la página principal, y no quería eso!!!
Quería que me llevara a la página donde pudiera mostrar la información de ese registro actualizado, en este caso, a otro método dentro del mismo controlador llamado InfoSong.
– Fácil!!!, usar Redirect::toAction(‘action’) con el nombre de la acción InfoSong…

Si, bueno, resulta que InfoSong recibe parámetros, un entero id para ser más preciso. Algo así: InfoSong($id).

-Ah bueno, es posible enviar parámetros desde ese método, así;  Redirect::toAction(‘action/param’).
Este… si, lo intenté. Resulta que el método editar maneja la variable $id, pensé…
facil!!! se la enviaré.
Redirect::toAction(‘InfoSong/$id’).
Pues…. no funciona.  En este caso $id lo toma como una cadena, no extrae su valor.

Que lío!!!!
Si toma como cadena lo que meta ahí, no puedo hacer cosas como “<?=$id?>” o, “objeto->dato”.
Todo lo tomaría como una cadena!!!

Y bueno… a punto de desistir y probando qué podía funcionar, vino una idea a mi mente.

– Y si mandas una variable en vez de una cadena entre comillas? ¿Qué pasaría?
    Pues…. probemos.

$action = ‘InfoSong’;
Redirect::toAction($action);
Oye!!! Funciona!!!

Genial!! Pero…. y lo del parámetro?

Pensemos….. si puedo enviar una cadena como parámetro, podría hacer que la cadena contenga la acción y el id verdad?
Aquí la ñapa: ¿Cómo concateno cadenas en PHP?  Con el operador “.” (punto).

Probemos….

$action = ‘InfoSong/’.$id;     // quedaría  “InfoSong/valor_id”, justo lo que necesito
Redirect::toAction($action);

Eureka!!!
Ahora sí, actualicemos y mostremos la vista con los cambios!!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *