Pregunta

Estoy usando la clase de tabla que genera automáticamente una tabla para mí a partir de una matriz de datos extraídos de mi base de datos.

Modelo :

function get_reports_by_user_id($userid)
{
    return $this->db->get_where('ss2_report',array('userid' => $userid))->result_array();
}

Controlador :

function index()
{
    echo $this->table->generate($this->mymodel->get_reports_by_user_id('1234'));
}

El controlador eventualmente se moverá a una vista cuando lo tenga funcionando. Esto genera la tabla muy bien, pero me gustaría agregar un enlace a un campo. Por ejemplo, la columna id que me permitiría vincular a una página de datos solo para la identificación de ese informe. Sé que puedo sacar la tabla a la antigua usanza a mano. Luego puedo agregar los enlaces que quiera, pero me encantaría poder usar la generación automática tanto como sea posible. Tiene que haber una manera de hacer algo tan común como vincular una celda de tabla. ¿Alguien tiene alguna idea?

EDITAR :

El usuario Java PHP lo tiene principalmente debajo. Aquí está el código que lo hace funcionar:

function get_reports_by_user_id($userid)
{
    $rows = $this->db->get_where('ss2_report',array('userid' => $userid))->result_array();

    foreach ($rows as $count => $row)
    {
        $rows[$count]['id'] = anchor('report/'.$row['id'],$row['id']);
    }
    return $rows;
}

Solo necesitaba reemplazar el valor en la matriz original con la versión de texto de anclaje.

¿Fue útil?

Solución

La única forma es que, en la función get_reports_by_user_id(), recorra todos los resultados y agregue la etiqueta <a href> a los identificadores. Algo como esto:

function get_reports_by_user_id($userid)
{
   $rows=$this->db->get_where('ss2_report',array('userid' => $userid))->result_array();
   foreach ($rows as $row)
   {
     $row->id=anchor('site.com/some_controller/some_function/'.$row->id,$row->id);
   }
   return $rows;
}

No uso la biblioteca de base de datos de CodeIgniter, así que no estoy seguro de en qué formato devuelve $rows, pero el código anterior debería darle una idea general de lo que debe hacer.

Otros consejos

Una idea podría ser hacer algo como ...

foreach ($row in $this->mymodel->get_reports_by_user_id('1234'))
{
    $row->id = anchor(site_url(array('report', 'user', $row->id)), $row->id);
    $this->table->add_row($row);
}
$this->table->generate();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top