Uso de Parámetros y variables en

edited noviembre 2009 in Dudas/Problemas
(Kumbia Spirit)
***En el index.phtml tengo:
echo "<td>".link_to(array("expte/selecciona/".$item->id, img_tag('ojo3.jpg','BORDER: 0')))."</td>";

***y en el controlador:
public function selecciona($id)
{
if ($id!= null) {
$this->idActivo = $id;
Router::route_to('action: index');
}
}
*** La idea es que en el index.phtml quiero mostrar datos de otra tabla con la que tiene una relación 1:M.(utilizando $idActivo como clave de enlace).
***** El caso es que en la acción sí recojo el id que deseo mostrar, pongamos por ejemplo el id=25,pero luego cuando redirecciono al index, me intenta motrar la página 25 de la tabla principal, en lugar de la primera que es donde estaba, y cuando intento visiualizar los datos del registro 25, no me muestra nada:
<?php echo "<h3>Datos del expediente:'".$idActivo."'</h3>";
*** la sentencia anterior dentro del index.phtml me no me muestra el idActivo... en lugar de mstrar la pág. 1 y detos del reg. 25, me muestra la página 25 y datos del idActivo: nulo.

¿ Qué hago mal? ¿ Cómo hago para volver a ver index.html en la misma página que estaba, y recoger el valor de la clave 'id' que quiero mostrar?
Itento usar variables en el controller, pero no me sale...

Comentarios

  • No entiendo que quieres hacer...
  • Perdón por el lío, y gracias por la respuesta...
    En el index, a la izquierda, muestro los datos de la tabla 'expte' con clave primaria 'id', y a la derecha los datos de una tabla 'informe', que enlaza con la primera con el campo 'expte'. Quiero mostrar una relación 1:M.
    En las filas de la izquierda pongo un icono para seleccionar un registro de la tabla principal 'expte' (a la acción 'selecciona' se le pasa el 'id'):

    echo "<td>".link_to(array("expte/selecciona/".$item->id, img_tag('ojo3.jpg','BORDER: 0')))."</td>"

    La acción almacena el 'id' de la tabla principal:
    public function selecciona($id)
    {
    if ($id!= null) {
    Session::set('expteActivo', $id);
    $this->listExpte = $this->Expte->getExpte(Session::get('pagina'),null );
    $this->render('index');
    }
    }
    Como se ve, ahora estoy probando a almacenar el 'id' con una variable de sessión. y en la vista ejecuto:
    echo "<h3>Datos del expediente:'".Session::get('expteActivo')."'</h3>";

    Así sí consigo recuperar recuperar la clave de la tabla principal... me falta mostrar las filas de la tabla detalle 'informe'.
    Pero en ese caso no me recuperaba la página en la que estaba, y lo estoy probando con otra variable de sesión como se ve en el código anterior:

    $this->listExpte = $this->Expte->getExpte(Session::get('pagina'),null );
    ... y llamo a la vista:$this->render('index');

    en el index tengo:
    function index($page=1){
    $this->listExpte = $this->Expte->getExpte($page,null);
    Session::set('pagina', $page);
    }

    De este modo me va funcionando...
    Además de todo esto, en la acción 'del' y 'edit' he colocado al final:
    $this->listExpte = $this->Expte->getExpte(Session::get('pagina'),null );
    $this->render('index');
    ... en lugar del 'router_to' que teneis en el ejemplo, por que siempre me volvía a la primera página de tabla principal, cosa que apra el usuario resulta molesto volver siempre al principio..

    Gracias por todo... por ahora me va saliendo... aunque a lo mejor me estoy liando un poco...
Sign In or Register to comment.