Возможно, есть лучший способ сделать это, но я просто перебираю строки запроса для создания строк таблицы:
if ($query->num_rows() > 0)
{
foreach ($query->result() as $row)
{
$this->table->add_row(anchor('view_employee/ID/' . $row->employee_id, $row->employee_name), $row->employee_department);
}
}
$data['table'] = $this->table->generate();
и т.д ...
UPDATE:
За ваш комментарий к этому ответу я не вижу, как этот метод больше вводит html в модель, чем ваш собственный пример. В конце концов, в любом случае все, что вы будете делать в представлении, это <?= $table; ?>
, или подобное.
Если вы абсолютно хотите разделить их, вы можете сделать:
$data['rows'] = array();
if ($query->num_rows() > 0)
{
foreach ($query->result() as $row)
{
$this_row = array();
$this_row['link'] = site_url('view_employee/ID/' . $row->employee_id);
$this_row['employee_name'] = $row->employee_name;
$this_row['employee_department'] = $row->employee_department;
$data['rows'][] = $this_row;
}
}
и затем в виде:
<table border="0" cellpadding="2" cellspacing="1" width="70%">
<tr>
<th>Name</th>
<th>Department</th>
</tr>
<? foreach($rows as $row): ?>
<tr>
<td><a href="<?= $row['link']; ?>"><?= $row['employee_name']; ?></a></td>
<td><?= $row['employee_department']; ?></td>
</tr>
<? endforeach; ?>
</table>