Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CodeIgniter表类:从生成的单元格添加链接_Codeigniter_Anchor_Code Generation - Fatal编程技术网

CodeIgniter表类:从生成的单元格添加链接

CodeIgniter表类:从生成的单元格添加链接,codeigniter,anchor,code-generation,Codeigniter,Anchor,Code Generation,我正在使用table类,它可以从数据库中提取的数据数组中自动生成一个表 型号: function get_reports_by_user_id($userid) { return $this->db->get_where('ss2_report',array('userid' => $userid))->result_array(); } function index() { echo $this->table->generate($this

我正在使用table类,它可以从数据库中提取的数据数组中自动生成一个表

型号

function get_reports_by_user_id($userid)
{
    return $this->db->get_where('ss2_report',array('userid' => $userid))->result_array();
}
function index()
{
    echo $this->table->generate($this->mymodel->get_reports_by_user_id('1234'));
}
控制器

function get_reports_by_user_id($userid)
{
    return $this->db->get_where('ss2_report',array('userid' => $userid))->result_array();
}
function index()
{
    echo $this->table->generate($this->mymodel->get_reports_by_user_id('1234'));
}
当控制器工作时,它最终将被移动到视图中。这生成的表很好,但我想添加一个指向字段的链接。例如,
id
列,它允许我链接到一页数据以获取该报告的id。我知道我可以手工以老式方式输出该表。然后我可以添加任何我想要的链接,但我希望能够尽可能多地使用自动生成。必须有一种方法来做一些像链接表格单元格一样常见的事情。有人有什么想法吗

编辑

function get_reports_by_user_id($userid)
{
    return $this->db->get_where('ss2_report',array('userid' => $userid))->result_array();
}
function index()
{
    echo $this->table->generate($this->mymodel->get_reports_by_user_id('1234'));
}
用户javaphp基本上就在下面。下面是使其工作的代码:

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

我只需要用锚文本版本替换原始数组中的值。

一个想法可能是执行以下操作:

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();

唯一的方法是,在函数
get\u reports\u by\u user\u id()
中,循环遍历所有结果,并将
标记添加到id中。大概是这样的:

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

我不使用CodeIgniter的数据库库,所以我不确定它返回的是什么格式的
$rows
,但上面的代码应该能让您大致了解您需要做什么。

谢谢,这基本上是正确的。我唯一需要做的更改是在我编辑的问题中发布的。您可以不使用$count,而是:foreach($count=>$row的行数)和$count将随着每次迭代而自动递增再次感谢,用改进后的代码进行了更新。