Pergunta

Eu estou usando a classe tabela que gera automaticamente uma tabela para mim a partir de uma matriz de dados extraídos de meu banco de dados.

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'));
}

O controlador acabará por ser transferido para uma visão quando eu tenho que trabalhar. Isso gera a tabela muito bem, mas eu gostaria de adicionar um link para um campo. Por exemplo, a coluna id que permita-me o link para uma página de dados para apenas essa ID do relatório. Eu sei que posso apenas a saída da mesa à moda antiga com a mão. Posso, então, adicionar o que links que eu quero, mas eu adoraria ser capaz de usar a auto-geração, tanto quanto possível. Tem que haver uma maneira de fazer algo tão comum como ligar uma célula de tabela. Alguém tem alguma idéia?

Editar :

Usuário Java PHP tem principalmente logo abaixo. Aqui está o código que faz com que funcione:

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;
}

Eu só precisava para substituir o valor na matriz original com a versão de texto âncora.

Foi útil?

Solução

A única maneira é, no get_reports_by_user_id() função, você faria percorrer todos os resultados e adicionar a tag <a href> para os ids. Algo parecido com isto:

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;
}

Eu não usar a biblioteca do banco de dados do CodeIgniter então eu não tenho certeza de que formato ele retorna $rows, mas o código acima deve dar-lhe a idéia geral do que você precisa fazer.

Outras dicas

Uma idéia poderia ser a de fazer algo assim ..

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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top