CodeIgniter Mesa Classe: Adicionar uma ligação de um celular Gerado
-
06-07-2019 - |
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.
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();